如何显示在Android的溢出菜单项来操作栏(How do I show Overflow Menu

2019-07-21 22:54发布

我在我试图表明溢出菜单项,动作条写一个Android应用程序

使用这个伟大的教程链接: http://wptrafficanalyzer.in/blog/adding-action-items-and-overflow-menu-items-to-action-bar-in-android/

问题:

Not getting Overflow Menu Items (Icon)

请参考下面的屏幕截图为了更清楚:

的Manifest.xml:

<uses-sdk android:minSdkVersion="14" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" 
        android:uiOptions="splitActionBarWhenNarrow"              
        >

items.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/phone"
    android:title="@string/phone"
    android:icon="@drawable/phone"
    android:showAsAction="ifRoom|withText"
/>

<item
    android:id="@+id/computer"
    android:title="@string/computer"
    android:icon="@drawable/computer"
    android:showAsAction="ifRoom|withText"
/>

<item
    android:id="@+id/gamepad"
    android:title="@string/gamepad"
    android:icon="@drawable/gamepad"
    android:showAsAction="ifRoom|withText"
/>

<item
    android:id="@+id/camera"
    android:title="@string/camera"
    android:icon="@drawable/camera"
    android:showAsAction="ifRoom|withText"
/>

<item
    android:id="@+id/video"
    android:title="@string/video"
    android:icon="@drawable/video"
    android:showAsAction="ifRoom|withText"
/>

<item
    android:id="@+id/email"
    android:title="@string/email"
    android:icon="@drawable/email"
    android:showAsAction="ifRoom|withText"
/>
 </menu>

我使用本教程,并努力使图6:实施项目和溢出菜单,拆分操作栏

请帮我带溢出菜单项(图标),动作条

现在,每当我做点击菜单按钮的模拟器,然后我得到休息菜单项 ....

Answer 1:

要显示三点图标,行动吧,只需使用下面的方法在您的OnCreate():

   private void getOverflowMenu() {

    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) {
       e.printStackTrace();
   }
 }


Answer 2:

只是说,如果你的设备有一个菜单按钮,溢出图标将不会显示,在较新的手机溢出按钮将显示。 我不会reccomend ASMUIRTI的答案,因为它是一个可怕的黑客工具,打破了平台上的应用程序的其他部分保持一致。

您必须使用

android:showAsAction="never"

并让Android设备决定是否需要针对该设备的溢出菜单。



Answer 3:

这可能是另一种解决办法,这真的帮了我。 保持一个绘制有三个点,并给它作为一个菜单项。

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >


<item
    android:id="@+id/saveDetails"
    android:showAsAction="always"
    android:title="@string/save"/>

<item
    android:id="@+id/menu_overflow"
    android:icon="@drawable/dts"
    android:orderInCategory="11111"
    android:showAsAction="always">
    <menu>
        <item
            android:id="@+id/contacts"
            android:showAsAction="never"
            android:title="Contacts"/>


        <item
            android:id="@+id/service_Tasks"
            android:showAsAction="never"
            android:title="Service Tasks"/>


        <item
            android:id="@+id/charge_summary"
            android:showAsAction="never"
            android:title="Charge Summary"/>


        <item
            android:id="@+id/capture_signature"
            android:showAsAction="never"
            android:title="Capture Signature"/>
    </menu>
</item>

 </menu>


Answer 4:

如果我没有理解你的问题,你要显示你的操作栏上的所有图标在您的菜单项改变这个参数

android:showAsAction="ifRoom|withText"

android:showAsAction="always"


Answer 5:

如果您是从支持库,以显示你必须在你的XML语法如下使用操作栏菜单项使用:

yourappname:showAsAction="ifRoom|withText"


Answer 6:

这对硬件按钮的点击菜单硬件按键,显示额外的菜单项的电话。 较新的手机,没有硬件菜单按钮自动添加一个溢出菜单图标操作栏。 额外的菜单项是那些具有“showAsAction”属性设置为从不。



Answer 7:

中添加之间的AndroidManifest.xml

android:theme="@android:style/Theme.Holo.Light"

它会在您的应用程序的操作栏。

在那之后,去menu.xml文件并添加如下

xmlns:tools="http://schemas.android.com/tools

之间最后,在每个项目增加

android:showAsAction="always"
tools:ignore="AppCompatResource"


文章来源: How do I show Overflow Menu Items to Action Bar in Android