我的应用程序中有一个包含3个项目的动作栏。
由于空间问题,只能显示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;
}
发布于 2012-10-27 17:21:52
如果你想要显示三个点,不管设备菜单按钮!然后,您可以在应用程序类的onCreate方法中调用此方法-
private void makeActionOverflowMenuShown() {
//devices with hardware menu button (e.g. Samsung Note) don't show action overflow menu
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
Log.d(TAG, e.getLocalizedMessage());
}
}
发布于 2012-06-23 00:19:52
在带有硬件菜单按钮的设备上(Galaxy S3,顽固的三星...)通过使用硬件菜单按钮,溢出菜单的行为类似于“传统”菜单。
发布于 2012-03-16 22:55:41
当你说“溢出”菜单时,你是指最后出现的三个点,表示有更多的项目...或者你指的是底部显示的溢出项的拆分操作栏?
如果您指的是拆分操作栏,则应将其添加到活动的清单文件中
android:uiOptions="splitActionBarWhenNarrow"
默认情况下,三点溢出菜单应该会自动发生,所以很难从上面提供的信息中判断出问题是什么。
https://stackoverflow.com/questions/9739498
复制相似问题