Displaying icon along with text in Android overflow menu of Action Bar

Is there a way in which we can display icon along with text in android over flow menu of action bar.
My code is below :

  <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>

Can anyone help me is sorting out this issue. I need to display both icon along with text in overflow that appears on the top right of action bar.


Thanks in advance

Upvotes: 3

Views: 6291

Answers (4)

Raj Kumar
Raj Kumar

Reputation: 796

you Need to add tools:context="your class" to menu tag

<?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);

         } 

you shold write tool:context to menu tag then run you will get icons to your text

Upvotes: 0

ajdeguzman
ajdeguzman

Reputation: 1209

Try creating customized overflow menu:

<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> 

Upvotes: 0

codeMagic
codeMagic

Reputation: 44571

AFAIK, this is not possible. What you can do is use a ListPopupWindow to accompish this. I had to use a custom bar instead of ActionBar, since it doesn't seem very customizable and I have used PopupMenu but I haven't tried to put icons in yet. But ListPopupWindow should allow you too. You may have to use a custom bar. Possibly attach it to the oveflow button somehow but I'm not sure that is possible

Note that ListPopupWindow needs API >=11

Upvotes: 0

fr4gus
fr4gus

Reputation: 396

As far as I understand, Action Overflow just displays the text (android:title). I've been looking through some apps, and none of them have "icon+text" on items within the Action Overflow.

Upvotes: 1

Related Questions