Questions tagged «android-actionbar»

ActionBar是Android的窗口功能,可识别应用程序和用户位置,并提供用户操作和导航模式。

8
Android Lollipop,AppCompat ActionBar自定义视图不会占用整个屏幕宽度
因此,我刚刚将代码库更新为Lollipop,并且操作栏出现问题。我正在使用AppCompat和ActionBarActivity,并放大自定义视图。自定义视图似乎不再占据屏幕的整个宽度,在左侧留下一条细条 它过去的样子 现在的样子 这是我用来设置操作栏的代码。有人有主意吗? final ActionBar actionBar = getSupportActionBar(); if(actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); actionBar.setCustomView(R.layout.action_bar_content_search_custom_view); actionBar.setBackgroundDrawable(null); // actionBar.setStackedBackgroundDrawable(null); TextView title = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title); title.setText(R.string.youtube); ImageView back = (ImageView) actionBar.getCustomView().findViewById(R.id.action_bar_back); back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } 编辑 现在,取出自定义视图并更改背景会占用整个宽度。因此,问题在于,如何使CustomView占据ActionBar的整个宽度?

3
片段或活动中带有工具栏的协调器布局
有了新的设计库,有几个新的布局会极大地改变开发人员希望的工具栏行为。由于不同的片段具有不同的行为和目标,例如带有折叠的工具栏的画廊片段显示重要的照片,或者没有滚动视图的片段只需要appbarlayout来隐藏工具栏,因此在活动中只有一个工具栏可以证明是困难的。 因此,我应该将工具栏移动到每个片段吗?如果是这样,我每次显示一个片段时都必须设置supportActionBar,并且还要对该片段中的活动进行引用,这会使片段的独立性无效。如果我仅将工具栏留在“活动”中,则必须为每个片段中的每种行为类型定义多个布局。最好的方法是什么?

7
如何更新ActionBar中显示的菜单项?
我有一个包含2个片段的活动。两者都是ListFragments,都向菜单贡献MenuItems。我有一个MenuItem,它已将android:showAsAction属性设置为在ActionBar上显示为按钮。哪个工作正常。 现在MenuItem是依赖状态的。这是“暂停/恢复”菜单选项,用于暂停和恢复队列。我的问题是创建片段时我不知道如何设置它的初始雕像。 它的状态取决于队列是否暂停。所以我有一个AsyncTask来获取队列并根据队列的状态设置一个布尔值(已暂停)。我正在调用onPrepareOptionsMenu来基于队列的最后一个已知状态来设置“暂停”菜单项的文本,并且如果我将MenuItem保留在实际菜单中,则该方法非常有用。您单击菜单图标,将触发onPrepareOptionsMenu并在显示菜单之前对其进行更新。 问题是,如果将相同的MenuItem放在ActionBar(showAsAction)上,如何强制其更新而不必调用onPrepareOptionsMenu?我需要能够执行此操作,因为在首次启动该应用程序时,我发送了一个获取队列的请求,但是在设置并显示了ActionBar之后,任务会返回。我在片段中创建了一个处理程序,每次获取队列更新时都会调用该处理程序,但是从那里,如何更新ActionBar上MenuItem的文本?除了onPrepareOptionMenu中的内容外,我似乎找不到其他方法来操纵当前设置的Menu。 罗伯·W

16
Android:如何在某些活动中隐藏ActionBar
我开发了一个简单的演示应用程序,其中包含启动屏幕,地图和一些常规屏幕。 我在顶部有一个包含徽标的操作栏。在我的手机(Galaxy s1 I9000 V2.3)上一切看起来都不错,但是当我在Galaxy s2 v4上对其进行测试时,动作栏也会出现在初始屏幕和地图屏幕中。 spalsh和map活动甚至都没有从ActionBarActivity继承,所以这怎么可能?我如何使它消失? 表现: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:theme="@style/Theme.AppCompat.Light" > <activity android:name=".HomeActivity" android:icon="@drawable/android_logo" android:label="" android:logo="@drawable/android_logo" > <!-- <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> --> </activity> <activity android:name=".MapActivity" android:label="" > </activity> <activity android:name=".PackageActivity" android:icon="@drawable/android_logo" android:label="" android:logo="@drawable/android_logo" > </activity> <activity android:name=".SplashActivity" android:label="" > <intent-filter> <action android:name="android.intent.action.MAIN" …

11
在Appcompat 21中更改工具栏颜色
我正在测试新的Appcompat 21 Material Design功能。因此,我创建了这样的工具栏: <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_my_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/> 并将其包含在我的主布局文件中。 然后像这样将其设置为supportActionBar: Toolbar toolBar = (Toolbar)findViewById(R.id.activity_my_toolbar); setSupportActionBar(toolBar); 它正在工作,但是以某种方式我无法弄清楚如何自定义工具栏。它是灰色的,上面的文字是黑色。如何更改背景和文字颜色? 我已经阅读了以下说明: http://android-developers.blogspot.de/2014/10/appcompat-v21-material-design-for-pre.html 我要监督什么来改变颜色? <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="android:windowActionBar" tools:ignore="NewApi">false</item> <item name="windowActionBar">false</item> </style> 编辑: 通过将以下代码行添加到主题,我能够更改背景色: <item name="colorPrimary">@color/actionbar</item> <item name="colorPrimaryDark">@color/actionbar_dark</item> 但是它们不会影响文本颜色。我想念什么?我更喜欢白色文本和白色菜单按钮,而不是黑色文本和黑色菜单按钮:

6
如何在ActionBar中显示自定义视图?
我想在操作栏中显示自定义搜索(为此我正在使用ActionBarSherlock)。 我明白了: 但是我想使自定义布局(edittext字段)占据整个可用宽度。 我已经按照这里的建议实现了自定义布局。 这是我的自定义布局search.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="?attr/actionButtonStyle" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_gravity="fill_horizontal" android:focusable="true" > <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical|fill_horizontal" > <EditText android:id="@+id/search_query" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="left|center" android:background="@drawable/bg_search_edit_text" android:imeOptions="actionSearch" android:inputType="text" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:src="@drawable/ic_search_arrow" /> </FrameLayout> </LinearLayout> 并在MyActivity: ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowTitleEnabled(false); actionBar.setIcon(R.drawable.ic_action_search); LayoutInflater inflator = …

9
Android操作栏不显示溢出
我的应用程序中有一个包含3个项目的操作栏。 由于空间问题,只能显示2个,因此我希望第一个显示,其余的显示在溢出中。但是实际上,仅显示前2个项目,并且没有可检测到的溢出。 以下是相关代码:list_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_insert" android:icon="@android:drawable/ic_menu_add" android:title="@string/menu_insert" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/menu_call" android:icon="@android:drawable/ic_menu_call" android:title="@string/menu_call" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/menu_agenda" android:icon="@android:drawable/ic_menu_agenda" android:title="@string/menu_agenda" android:showAsAction="ifRoom|withText"/> </menu> Activity.java public boolean onCreateOptionsMenu(Menu menu) { MenuInflater mi = getMenuInflater(); mi.inflate(R.menu.list_menu, menu); return true; }

21
从片段设置自定义ActionBar标题
在我的Main中FragmentActivity,我这样设置我的自定义ActionBar标题: LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.custom_titlebar, null); TextView tv = (TextView) v.findViewById(R.id.title); Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/capsuula.ttf"); tv.setTypeface(tf); tv.setText(this.getTitle()); actionBar.setCustomView(v); 这很完美。但是,一旦我打开other Fragments,我想更改标题。我不确定如何访问MainActivity来执行此操作?过去,我这样做: ((MainFragmentActivity) getActivity()).getSupportActionBar().setTitle( catTitle); 有人可以建议适当的方法吗? XML: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:ellipsize="end" android:maxLines="1" android:text="" …


9
带有片段的导航栏
我有一个标签式动作条/ viewpager布局三个标签说一,乙,和Ç。在标签Ç标签(片段),我加入另一片段发言权片段d。与 DFragment f= new DFragment(); ft.add(android.R.id.content, f, ""); ft.remove(CFragment.this); ft.addToBackStack(null); ft.commit(); 我在DFragment的onResume中修改操作栏以添加按钮: ActionBar ab = getActivity().getActionBar(); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); ab.setDisplayHomeAsUpEnabled(true); ab.setDisplayShowHomeEnabled(true); 现在在DFragment中,当我按硬件(电话)“后退”按钮时,我返回到原始的Tabbed(ABC)布局,并选择了CFragment。如何通过操作栏上按钮实现此功能?


3
如何在操作栏上添加下拉菜单项
在我的Android Honeycomb应用程序中,我使用Tabs作为导航样式。我想在溢出按钮旁边添加一个项目,但是我希望该项目成为一个下拉列表,并且用户可以在那里选择一个选项,但与导航无关。自从我使用以来,最简单的方法是什么mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 是否可以在不使用自定义视图的情况下做到这一点?

9
(不建议使用)片段onOptionsItemSelected没有被调用
编辑: 这个问题是针对过时的夏洛克动作栏。现在应改为使用Android支持库 我添加了一个名为“分享给我”的操作栏菜单选项,fragment该选项出现了,但未捕获选择事件 我正在这样添加 @Override public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) { MenuItem item = menu.add(0, 7,0, R.string.share); item.setIcon(R.drawable.social_share).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } 尝试同时以fragment或fragment activity类似方式捕获它 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 7: Intent share = new Intent(Intent.ACTION_SEND); share.setType("text/plain"); share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!"); startActivity(Intent.createChooser(share, "Share Text")); return true; default: …

4
在操作栏中实施SearchView
我需要SearchView从我的创建,arrayList<String>并在下拉列表中显示与此相同的建议 我正在寻找可逐步解释如何SearchView在操作栏中构建的教程。 我已经阅读了文档并按照示例google进行了搜索,但对我没有用。 我已经创建了搜索 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_search" android:title="Search" android:icon="@android:drawable/ic_menu_search" android:showAsAction="always" android:actionViewClass="android.widget.SearchView" /> </menu>` 但是我不知道如何设置字符串数组的参数。我尝试在其他“活动”中检索结果,但不起作用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.