Articles of android actionbar

手动膨胀自定义视图会为ActionBar自定义视图生成不同的布局

资源的自定义视图: // Set up the action bar. final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); actionBar.setCustomView(R.layout.custom_action_bar); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 结果是: 自定义视图手动膨胀: // Set up the action bar. final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); LayoutInflater inflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.custom_action_bar, null); actionBar.setCustomView(view); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 结果是: custom_action_bar.xml: 这里显示的第一个布局是正确的,因为它的小部件有权重。 第二次尝试应该产生相同的结果,但事实并非如此。

工具栏的徽标图标是否可点击?

我已经使用了工具栏,所以现在我想在logo图标上应用点击事件我怎么能得到这个活动? 这是我做过的一些编码 Toolbar toolbar = null; toolbar = (Toolbar) findViewById(R.id.actionToolbar); setSupportActionBar(toolbar); setTitle(null); toolbar.setNavigationIcon(R.drawable.back); toolbar.setNavigationContentDescription(“BACK”); toolbar.setLogo(R.drawable.ic_launcher); toolbar.setLogoDescription(“LOGO”); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, “Nav”, Toast.LENGTH_SHORT).show(); } }); 在这里,我设置了导航图标和徽标图标,所以现在我想要徽标图标的点击事件,怎么可能?

适用于3.0之前版本的Android操作栏批量选择

我有一个ListView ,我想为其启用批量选择。 对于Android 3.0及以上版本,我已经为ListView添加了一个模态多选项并设置了多选模式监听器。 如何为3.0之前的Android版本(有或没有第三方库)做同样的事情? 我看过ActionBarSherlock,但我没有在任何样本中find此function,也没有在网上搜索信息。 PS:当用户单击ListView的项目时,我想执行不同的操作,因此需要长按批次选择(或单个项目选择)。 3.0之前的版本可以追溯到API 7。

在ActionBar中更改操作溢出文本颜色

我一直在努力改变操作栏中Action Overflow项目的文本颜色。 我使用v7 AppCompat和Light主题与Dark actionbar。 actionMenuTextColor似乎什么也没做。 我需要把它改成黑色文字吗? 有任何想法吗?

无法使用Android操作栏下拉导航更改文本颜色

我正在使用我的操作栏下拉导航,当使用黑暗操作栏时,我无法获得相应文本的合理颜色。 动作栏本身是深灰色,文本颜色是黑色,因此很难阅读。 我按照Action Bar开发人员指南中的基本说明进行操作,因此我的代码很简单 SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item); ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { // TODO return false; } }; ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks(mSpinnerAdapter, navigationListener); 而我的styles.xml很简单 我认为这应该给了我一些明智的东西,但如下图所示,它在深灰色背景上显示为黑色文字,所以它没有用。 我尝试过使用styles.xml文件来尝试解决问题。 我最好的尝试是以下 @style/myActionDropDownStyle @style/myActionBar @color/LightCyan @style/myActionBar.titleTextStyle @color/Orange 这是(1)能够将应用程序标题的文本颜色更改为橙​​色,(2)能够将操作栏中所选导航项的背景颜色更改为浅蓝色,(3)能够更改背景颜色下拉列表,以便至少在浅色背景下显示黑色文本。 但是,我所做的任何事情都不会更改文本颜色本身,无论是对于操作栏中显示的选定项目,还是对于下拉列表中显示的项目。 我最好的尝试也看起来很可怕:-(! 我想要的只是一个黑暗的动作条,其中操作栏中显示的所选项目具有合理的文本颜色,应该与选择项目时使用的文本颜色相同,并且当项目为时,下拉列表的背景颜色为选择与操作栏相同的颜色。 但我无法弄明白该怎么做,有人可以帮忙吗? 仅供参考,我正在使用Eclipse和我最近下载的adt-bundle(adt-bundle-windows-x86_64-20130219)。 当我搜索解决方案时,我发现很多关于Sherlock操作栏的内容,但Sherlock的样式并未包含在该adt-bundle中。 在任何情况下,我使用的Holo.Light.DarkActionBar当然可以实现我想要的东西吗?

片段交易,操作栏和后台堆栈

在我的主要活动中,我有一个带有NAVIGATION_MODE_TABS的操作栏。 每个选项卡的内容都是一个listfragment。 我想这样做,以便在点击列表项时,一个新的片段进入视图,并且操作栏模式更改为NAVIGATION_MODE_STANDARD (以便现在隐藏选项卡)。 我已设法使用以下代码: 在listitemclick方法中: ActionBar actionBar = getActivity().getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); Fragment albumListFragment = new AlbumListFragment(); albumListFragment.setArguments(bundle); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(android.R.id.content, albumListFragment); ft.addToBackStack(null); // Commit the transaction ft.commit(); Log.i(“FragmentList”, “Item clicked: ” + id); 问题是,当我按下后退按钮时,标签仍然消失,前一个片段不会返回到视图中。 我做错了什么..是否与碎片堆叠有关? 我应该采取另一种方式,甚至覆盖背压? – 编辑 – 为清楚起见 – 我在调用fragmenttransaction.replace时调用addToBackStack,但是当我按下后退按钮时,前一个片段不会被恢复。

更改ActionBar和SearchView背景

我试图使用Holo Light主题与黑暗的动作条,如Android指南推荐。 这是我的themes.xml文件: @style/Widget.MyApp.ActionBar @android:drawable/dark_header @style/MyApp.ActionBar.TextAppearance @android:color/primary_text_dark 不使用搜索界面的结果是预期的,但是当我使用SearchView ,背景来自Holo.Light主题: 有什么方法可以更改ActionBar上的SearchView默认样式?

蜂窝动作栏和边距

我试图在操作栏上使用不同的“homeAsUpIndicator”图形,并且我遇到了屏幕边缘和图形的一些边缘问题。 在项目的styles.xml中使用值为@ drawable / my_graphic的“android:homeAsUpIndicator”属性,我设法将指标更改为自定义图形。 该图形的设计考虑了0dp的左边距 – 因为在图形的左边缘应该一直到屏幕的左边缘。 相反,我在图像的顶部和左侧都获得了6像素的边距。 我已尝试在styles.xml中设置边距和填充,但要么不起作用,要么我已将它应用于错误的资源。 此外,我尝试将操作栏背景设置为9补丁图形,并让标准指示器图形(Honeycomb 3.1中的“<”)浮动在它上面……这也不起作用,因为它只是按下指示器背景固定像素右侧的图形。 它仅覆盖了9补丁中被识别为拉伸像素的像素。 有没有办法从操作栏中删除6像素填充/边距,以便指示器图形与屏幕左侧齐平? 任何例子或线索将不胜感激! 谢谢

如何在Android API 7上使用或解决searchManager.getSearchableInfo()?

我无法在任何地方find如何使用searchManager.getSearchableInfo()支持v7 appcompat库。 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); MenuItem menuItem = (MenuItem) menu.findItem(R.id.search_widget); SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem); searchView.setSubmitButtonEnabled(true); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); searchView.setSearchableInfo( searchManager.getSearchableInfo(getComponentName())); return true; } 这是我得到的: Call requires API level 8 (current min is […]

Android动作栏自定义

我的应用程序正在使用Sherlock操作栏。 我的设计师给了我一个新的设计。 应用程序徽标需要位于中间 左侧有2个操作项,徽标右侧有2个操作项 应用程序徽标高度是动作栏大小的1.5(假设有点溢出) 是否可以为操作栏创建自定义布局以实现此设计? 或者我应该删除我的操作栏并实现我自己的设计? 如果第3项是可选的,它会改变你的答案吗? 谢谢