始终在支持操作栏中显示菜单项

Nit*_*bra 20 android optionmenu android-actionbar

在此输入图像描述我正在研究android应用程序.我已经在其中实现了支持的操作栏.我想始终显示选项菜单项.但它没有表现出来.它显示在下拉菜单中.我的代码为下面给出的菜单项.

<item
    android:id="@+id/action_settings"
    android:icon="@drawable/add_post"
    android:title="@string/action_settings"

    />
Run Code Online (Sandbox Code Playgroud)

ActionBar Activity的代码如下: -

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

fll*_*llo 44

如果使用AppCompatActionBar,则必须以这种方式更改布局:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto" >
    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/add_post"
        android:title="@string/action_settings"
        app:showAsAction="always" />
</menu>  
Run Code Online (Sandbox Code Playgroud)

showAsAction属性仅适用于自定义前缀,请参阅文档.根据它:

请注意,上面的showAsAction属性使用标记中定义的自定义命名空间.在使用支持库定义的任何XML属性时,这是必需的,因为旧设备上的Android框架中不存在这些属性.

希望这可以帮助.

  • 应该是接受的答案,谢谢你! (2认同)

Shu*_*ank 27

文档中, 您应该将showAsAction属性添加到alwaysifRoom

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:showAsAction="ifRoom" />
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)


Rus*_*tel 7

你可以android:showAsAction在android菜单xml文件中使用不同的属性值.

要在动作栏上显示所有时间可见菜单,你应该去android:showAsAction="always"..

您也可以使用,android:showAsAction="ifRoom"但它会在操作栏中显示菜单并不总是显示,但它会根据不同的屏幕大小显示.

编辑

参考:菜单项未显示在操作栏上

尝试使用以下代码然后..

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >
    <item
        android:id="@+id/menu_lang"
        app:showAsAction="always" <!-- app:showAsAction="ifRoom" -->
        android:title="@string/menu_lang"
        android:icon="@android:drawable/ic_input_lang"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

希望它会帮助你.. !!!


Nau*_*air 5

删除这一行 xmlns:app="http://schemas.android.com/apk/res-auto"

使用android:showAsAction="always"代替app:showAsAction="always"

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

<item
    android:id="@+id/action_refresh"
    android:icon="@drawable/ic_refresh"
    android:showAsAction="ifRoom"
    android:title="@string/action_refresh"/>

<item
    android:id="@+id/action_filter"
    android:icon="@drawable/ic_filter"
    android:showAsAction="always"
    android:title="@string/action_filter"/>
</menu>
Run Code Online (Sandbox Code Playgroud)