我正在使用支持库在我的代码中创建操作栏。然后我在代码中的操作栏中创建溢出图标。当我运行我的应用程序时,它显示溢出图标但是当我运行我的设备时它是不可见的。从某些链接我发现背后的原因是我的设备上存在菜单button
。这是真的吗?以及如何在每台设备上显示溢出图标?
代码 -
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item
android:id="@+id/menu_1"
android:orderInCategory="1"
yourapp:showAsAction="never"
android:title="@string/share"/>
<item
android:id="@+id/menu_2"
android:orderInCategory="2"
yourapp:showAsAction="never"
android:title="@string/contact"/>
<item
android:id="@+id/menu_3"
android:orderInCategory="3"
yourapp:showAsAction="never"
android:title="@string/contact1"/>
</menu>
答案 0 :(得分:1)
尝试制作 menu.xml ,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Search / will display always -->
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:title="@string/action_search"/>
<!-- Overflow More -->
<item
android:id="@+id/a_More"
android:icon="@drawable/ic_action_overflow"
android:showAsAction="always"
android:title="More">
<menu>
<item
android:id="@+id/menu_1"
android:orderInCategory="1"
yourapp:showAsAction="never"
android:title="@string/share"/>
<item
android:id="@+id/menu_2"
android:orderInCategory="2"
yourapp:showAsAction="never"
android:title="@string/contact"/>
<item
android:id="@+id/menu_3"
android:orderInCategory="3"
yourapp:showAsAction="never"
android:title="@string/contact1"/>
</menu>
</item>
</menu>
答案 1 :(得分:0)
是的,如果您的设备有菜单按钮,则不会显示溢出图标。
您可以使用此解决方法。无论您使用哪种设备,都会始终显示图标。但是,不推荐可以使用。保持默认情况下完成的方式。
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception ex) {
// Ignore
}