如何在android中的片段内添加溢出菜单

时间:2015-08-17 10:16:07

标签: android menu

我正在尝试在操作栏中显示菜单,即使在具有可用硬件菜单按钮的设备中,但如何在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"/>

1 个答案:

答案 0 :(得分:0)

我通过更改

解决了这个问题
android:showAsAction="always|withText"

android:showAsAction="never"

以这种方式菜单显示为溢出菜单,并且它们不需要 showOverflowMenu()等。