我试图让ActionBar在我的应用程序上正常工作(并且我使用ActionBarSherlock来获得Android 2.x和4.x之间统一的UI)。 我觉得像android:showAsAction="ifRoom"只是一个大,胖的谎言。 每当我给ifRoom设置一个动作,它总是出现在溢出菜单,即使有空间的PLENTY。 这是来自同一个模拟器的两个屏幕截图。 第一个显示ActionBar的所有选项设置为always ,第二个显示ActionBar,最后两个选项设置为ifRoom 。 正如你所看到的,当他们全部显示在屏幕截图中时,有足够的空间,那为什么他们不在第二个显示,因为他们有空间? 这是我的menu.xml: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/add" android:icon="@drawable/ic_menu_btn_add" android:showAsAction="always" android:title="Add"/> <item android:id="@+id/calculateNPV" android:icon="@drawable/menu_icon_npv" android:showAsAction="always" android:title="NPV"/> <item android:id="@+id/calculateIRR" android:icon="@drawable/menu_icon_irr" android:showAsAction="always" android:title="IRR/YR"/> <item android:id="@+id/send" android:icon="@android:drawable/ic_menu_share" android:showAsAction="always" android:title="@string/share_pdf"/> <item android:id="@+id/graph" android:icon="@drawable/ic_menu_gallery" android:showAsAction="ifRoom" android:title="@string/view_cashflow_diagram"/> <item android:id="@+id/deleteReorder" android:icon="@drawable/ic_menu_clear_playlist" android:showAsAction="ifRoom" android:title="@string/delete_reorder_cashflows"/> </menu>
我对我的最后一个问题有很有帮助的提示,我希望这次不会有所不同:)首先,让我解释一下情况。 我有一个有2个片段的活动。 对于每个片段我有一个XML菜单布局,第一个有四个菜单项,第二个只有一个。 现在首先加载具有四个菜单条目的片段。 在我设置的onCreate方法 this.setHasOptionsMenu(true); onCreateOptionsMenu方法 @Override public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_fragshow, menu); } xml文件如下所示: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_refresh" android:icon="@drawable/ic_action_search" android:title="Refresh" android:visible="true" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/menu_clearall" android:icon="@drawable/ic_action_search" android:title="Clear" android:visible="true" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/menu_addcontent" android:icon="@drawable/ic_action_search" android:title="Add Content" android:visible="true" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/menu_newlist" android:icon="@drawable/ic_action_search" android:title="New List" android:visible="true" […]
onCreateOptionsMenu(菜单菜单)和onPrepareOptionsMenu(菜单菜单)之间的区别。
在这里,我试图做出选项菜单,但菜单不显示在屏幕上,所以请指导我在哪里做错误… 提前致谢… MenuTest.java public class MenuTest extends Activity { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.more_tab_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.feeds: break; case R.id.friends: break; case R.id.about: break; } return true; } } 而我的XML文件是more_tab_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/feeds" android:title="Feeds"/> <item android:id="@+id/friends" […]
我工作的行动菜单项和溢出项目这是我的main_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_search" android:icon="@drawable/search" android:title="@string/start_new_project" app:showAsAction="always" /> <item android:id="@+id/menu_dts_overflow" android:icon="@drawable/ic_action_overflow_round" android:orderInCategory="11111" android:title="Service" app:showAsAction="always"> <menu> <item android:id="@+id/menu_newProject" android:icon="@drawable/newproject" android:title="@string/start_new_project" app:showAsAction="never" /> <item android:id="@+id/menu_help" android:icon="@drawable/help" android:title="Service Tasks" app:showAsAction="never" /> <item android:id="@+id/menu_signOut" android:icon="@drawable/signout" android:title="@string/menusignout" app:showAsAction="never" /> </menu> </item> 我试图构build一个search项目和溢出项目,你可以在上面的代码中看到。 我是新的动作酒吧菜单项,所以我试图谷歌它,并能够使其工作,因为我需要。 在这我必须知道一件事。 1.什么是orderInCategory与一些数字和它是什么使用..?
在新的更新中,Google发布了一个新的API支持库,支持API级别7+的ActionBar。 我使用了ActionBarSherlock直到这个更新,我写了代码来加载菜单: @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_main, menu); return true; } 和菜单文件: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item_menu_ok" android:icon="@drawable/ic_action_ok" android:title="@string/ok" android:showAsAction="always"></item> <item android:id="@+id/item_menu_cancel" android:icon="@drawable/ic_action_cancel" android:title="@string/cancel" android:showAsAction="always"></item> </menu> 在操作栏上设置菜单button。 此代码与ActionBarSherlock完美协同工作。 但是,当我将操作栏更改为新的支持库时,button不会显示在操作栏中。 即使它们被设置为android:showAsAction="always" 。 而当我debugging的代码,functionmenu.getSize()返回2,这是正确的,但没有button显示.. 为什么新的支持库中没有显示button?
我有一个PopupMenu ,我知道通常的方法来关联一个菜单是使用popup.getMenuInflater().inflate(R.menu.my_menu, popup.getMenu()); 或类似的东西。 我的问题是,我有一个项目,我想在菜单中的数组,我需要能够在Java中以编程方式进行更改。 我怎样才能做到这一点? 谢谢!
我设置一个菜单项上的actionLayout并设置背景颜色和图像,但不被尊重。 在我的活动中,我有: getMenuInflater().inflate(R.menu.submit_action, menu); 我的submit_action是: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_submit" android:actionLayout="@layout/check" app:showAsAction="always" /> </menu> 我的支票布局是 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" style="?android:attr/actionButtonStyle" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#e8e8e8" android:clickable="true" android:contentDescription="lol" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@null" android:scaleType="centerInside" android:src="@drawable/ic_action_tick" /> </RelativeLayout> 但即使所有这些设置,这是如何操作栏出现,根本不显示我的menuitem(但它在那里,因为它响应的点击,但没有出现):
我的Android应用程序中有以下菜单布局: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item1" android:titleCondensed="Options" android:title="Highlight Options" android:icon="@android:drawable/ic_menu_preferences" /> <item android:id="@+id/item2" android:titleCondensed="Persist" android:title="Persist" android:icon="@android:drawable/ic_menu_preferences" android:checkable="true" /> </menu> 我的问题是,当我在Android模拟器中运行我的应用程序时,第二个菜单项不显示为“可检查”。 应该有一个关于该项目的绿色勾号,对吧? 为了表明它的可检查性。 难道我做错了什么?
如何更改菜单项标题的文本颜色。 我试图改变它如下 <style name="Theme.Kanku.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/white</item> </style> 但它只改变操作栏标题文本的颜色,而不改变菜单项文本。