操作栏中的溢出图标不可见

时间:2014-02-04 05:18:54

标签: android android-actionbar android-support-library

我正在使用支持库在我的代码中创建操作栏。然后我在代码中的操作栏中创建溢出图标。当我运行我的应用程序时,它显示溢出图标但是当我运行我的设备时它是不可见的。从某些链接我发现背后的原因是我的设备上存在菜单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>

2 个答案:

答案 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
    }