我正在尝试在我的应用程序上正确地使用ActionBar(我正在使用ActionBarSherlock以在Android 2.x和4.x之间实现统一的UI)。我感觉android:showAsAction="ifRoom"
是一个大谎言。每当我将操作设置为ifRoom
时,它总是出现在溢出菜单中,即使有足够的空间。这里有两个来自同一模拟器的截图。第一个显示了所有选项都设置为always
的ActionBar,第二个显示了最后两个选项设置为ifRoom
的ActionBar。正如您所看到的,当它们都在always
截图中显示时,有足够的空间,那么为什么它们不在第二个截图中显示,因为它们确实有空间?
这是我的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>
ActionBarActivity
,则需要使用命名空间。如果使用Activity
,则可以使用 android:showAsAction。 - nickromanoandroid
命名空间解决了我的问题! - Derek 朕會功夫appcompat
库,则需要使用app
。否则,您应该使用android
。 - Soren Stoutner