Actionbar将菜单图标显示为溢出而不是单个图标

时间:2015-01-07 07:12:48

标签: android android-actionbar

发生了什么:

  1. 我在操作栏中有两个图标作为菜单
  2. 我的最小sdk为8,最大为21
  3. 这些图标显示在下拉列表中,而不是单独的图标
  4. 我使用的主题是Theme.AppCompat.Light.DarkActionBar
  5. 我的活动正在延长ActionBarActiviy
  6. 我想要的是什么:

    我希望将其显示为个人图标

    menu.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto">
    
        <item
            android:id="@+id/icnMenuWalletId"
            android:icon="@drawable/wallet"
            android:showAsAction="ifRoom"
            android:title="WALLET">
        </item>
        <item
            android:id="@+id/icnMenuTwoId"
            android:icon="@drawable/notification"
            android:showAsAction="ifRoom"
            android:title="NOTIFICATIONS">
        </item>
    
    </menu>
    

    Styles.xml

    <resources>
    
        <!--
            Base application theme for API 11+. This theme completely replaces
            AppBaseTheme from res/values/styles.xml on API 11+ devices.
        -->
        <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- API 11 theme customizations can go here. -->
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
            <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    
    
        </style>
    
         <!-- Application theme. -->
        <style name="AppThemeSplash" parent="AppBaseTheme">
            <!-- All customizations that are NOT specific to a particular API-level can go here. -->
             <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    
        </style>
    
    
    </resources>
    

3 个答案:

答案 0 :(得分:3)

您必须在menu.xml中编辑一行。只需编辑菜单项

的行
android:showAsAction="always"

通过使用它,android将始终显示菜单项。如果菜单项不是必须在操作栏上显示,我们通常使用ifRoom。

答案 1 :(得分:2)

更改

android:showAsAction="ifRoom" 

android:showAsAction="always"

ifRooom用于将项目移动到溢出菜单,如果没有空间容纳

答案 2 :(得分:0)

试试这个并确保您已将包名tools:context="com.abc.android.HomeActivityNew"更改为您的包名称,希望它有所帮助

<menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context="com.abc.android.HomeActivityNew" >

        <item
            android:id="@+id/icnMenuWalletId"
            android:icon="@drawable/wallet"
            android:showAsAction="always"
            android:title="WALLET">
        </item>
        <item
            android:id="@+id/icnMenuTwoId"
            android:icon="@drawable/notification"
            android:showAsAction="always"
            android:title="NOTIFICATIONS">
        </item>

    </menu>