在操作栏的Android溢出菜单中显示图标和文本

时间:2013-05-07 19:15:26

标签: android android-actionbar

有没有一种方法可以在操作栏的流程菜单中显示图标以及android中的文本。
我的代码如下:

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

<item android:id="@+id/menu_share"
      android:title="share"
      android:showAsAction="always"
      android:actionProviderClass="android.widget.ShareActionProvider" />


 <item
    android:id="@+id/action_search"
    android:showAsAction="always|collapseActionView"
    android:icon="@drawable/ic_menu_search"
    android:title="Search"
    android:actionViewClass="android.widget.SearchView">  

   <item
    android:id="@+id/item_refresh"
    android:icon="@drawable/ic_menu_refresh"
    android:title="Refresh"
    android:showAsAction="ifRoom|withText"
    />

  <item
    android:id="@+id/item_save"
     android:icon="@drawable/ic_menu_save"
     android:title="Save"
     android:showAsAction="ifRoom|withText"

    ></item>
 </menu>

任何人都可以帮我解决这个问题。我需要在操作栏的右上角显示溢出的文本和文本。


提前致谢

4 个答案:

答案 0 :(得分:1)

据我了解,Action Overflow只显示文本(android:title)。我一直在浏览一些应用程序,但没有一个在动作溢出中的项目上有“图标+文字”。

答案 1 :(得分:0)

AFAIK,这是不可能的。你可以做的是使用ListPopupWindow来实现这一点。我不得不使用自定义栏而不是ActionBar,因为它似乎不是可自定义的,我使用PopupMenu但我还没有尝试过放入图标。但是ListPopupWindow也应该允许你。您可能必须使用自定义栏。可能会以某种方式将它附加到oveflow按钮,但我不确定是否可能

请注意,ListPopupWindow需要API&gt; = 11

答案 2 :(得分:0)

尝试创建自定义溢出菜单:

<item
        android:id="@+id/action_overflow"
        android:icon="@drawable/overflow"
        android:showAsAction="always">
        <menu>
           <item android:id="@+id/menu_share"
          android:title="share"
          android:showAsAction="always"
          android:actionProviderClass="android.widget.ShareActionProvider" />
            <item
            android:id="@+id/action_search"
            android:showAsAction="always|collapseActionView"
            android:icon="@drawable/ic_menu_search"
            android:title="Search"
            android:actionViewClass="android.widget.SearchView">  
            <item
            android:id="@+id/item_refresh"
            android:icon="@drawable/ic_menu_refresh"
            android:title="Refresh"
            android:showAsAction="ifRoom|withText"
            />

            <item
            android:id="@+id/item_save"
            android:icon="@drawable/ic_menu_save"
            android:title="Save"
            android:showAsAction="ifRoom|withText"

            ></item>
        </menu>
    </item> 

答案 3 :(得分:0)

您需要添加工具:context =“your class”到菜单标签

<?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"
   xmlns:tools="http://schemas.android.com/tools"
   tools:context=".activities.BaseActivity">


   <item
       android:id="@+id/action_notification1"
       android:icon="@drawable/three"
       android:title="action_notification"
       app:showAsAction="always">
       <menu>
           <item
               android:id="@+id/profile"
               android:icon="@drawable/profile"
               android:orderInCategory="100"
               android:title="PROFILE" />

           <item
               android:id="@+id/c"
               android:icon="@drawable/correct_tick"
               android:orderInCategory="100"
               android:title="COMPLETED TRIPS" />

           <item
               android:id="@+id/app"
               android:icon="@drawable/report_issue"
               android:orderInCategory="100"
               android:title="REPORT ISSUES" />
           <item
               android:id="@+id/r"
               android:icon="@drawable/correct_tick"
               android:orderInCategory="100"
               android:title="REACHED CENTER" />


           <item
               android:id="@+id/pdf"
               android:icon="@drawable/pdf_image"
               android:orderInCategory="100"
               android:title="BAG INFO" />
           <item
               android:id="@+id/l"
               android:icon="@drawable/logout"
               android:orderInCategory="100"
               android:title="LOGOUT" />
       </menu>
   </item>


</menu>



     @Override 
         public boolean onCreateOptionsMenu(Menu menu) {

         getMenuInflater().inflate(R.menu.main, menu); 
         menu.getItem(0).getSubMenu().getItem(3).setVisible(false);
         menu.getItem(0).getSubMenu().getItem(4).setVisible(true);
         return super.onCreateOptionsMenu(menu);

         } 

你把写工具:上下文菜单标签然后运行你会得到你文字的图标