我正在尝试在操作栏中显示菜单,即使在具有可用硬件菜单按钮的设备中,但如何在android中的片段中溢出菜单。 我在.get方法中遇到错误 在这一行
ViewConfiguration.get(frag);
这是我的片段
private void showOverflowMenu(Fragment frag) {
try {
ViewConfiguration config = ViewConfiguration.get(frag);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("menu_item1");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
这是我的onCreateOptionsMenu。它在具有硬件菜单按钮的设备中工作正常,但我想在操作栏中显示它,但我在.get方法中出错。
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Do something that differs the Activity's menu here
// menu.clear();
inflater.inflate(R.menu.menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
这是我的menu.xml
<item
android:id="@+id/menu_1"
android:orderInCategory="1"
android:showAsAction="always|withText"
android:title="@string/menu_item1"/>
<item
android:id="@+id/menu_2"
android:orderInCategory="2"
android:showAsAction="always|withText"
android:title="@string/menu_item2"/>
<item
android:id="@+id/menu_3"
android:orderInCategory="3"
android:showAsAction="always|withText"
android:title="@string/menu_item3"/>
答案 0 :(得分:0)
我通过更改
解决了这个问题android:showAsAction="always|withText"
带
android:showAsAction="never"
以这种方式菜单显示为溢出菜单,并且它们不需要 showOverflowMenu()等。