2015-11-18 24 views
6

Menu items with title and icon when showAsAction is neverAndroid pozycja menu zarówno ikony i tekst razem kiedy showAsAction nigdy nie jest

Cześć, jak mogę uczynić moje pozycje menu mają ikony, a także gdy showAsAction nigdy nie jest?

+0

Dlaczego sprawiasz, że showAsAction jest równa nigdy? Jeśli chcesz pokazać element menu z ikonami, wartość showAsAction musi być z tekstem "android: showAsAction =" withText "' –

+0

Bo tak właśnie chcę, żeby się pojawiły. Nie chcę, aby element menu pojawiał się w ActionBar, ale w menu wewnętrznym. Kiedy showAsAction nigdy nie jest wyświetlany, wyświetlany jest tylko tekst, ale chcę, aby ikona również się pojawiła, tak jak na zdjęciu. – Elnoor

+0

Jest trochę pracy. Mam nadzieję, że [this] (http://stackoverflow.com/questions/15454995/popupmenu-with-icons) pomoże. –

Odpowiedz

0

W menu createOptions ustaw ikonę i tekst w MenuItem.

Rozwiąż problem nieco bardziej.

+0

Nadal nie wyświetla ikony. @ TheAndroidFreak – Elnoor

1

Użyj tego pliku menu, który zadziałał dla mnie.

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

    <item 
     android:id="@+id/action_m" 
     android:showAsAction="never" 
     android:title="menu"> 
     <menu > 
      <item 
      android:id="@+id/action_one" 
      android:icon="@android:drawable/ic_popup_sync" 
      android:showAsAction="always" 
      android:title="Sync"/> 
     <item 

      android:id="@+id/action_two" 
      android:icon="@android:drawable/ic_dialog_info" 
      android:title="About"/> 
     </menu> 
     </item> 
</menu> 
+0

Wielkie dzięki @Harry Mad, ale chodzi o to, że jest to podmenu. Ale chcę wyświetlić ikonę głównego menu pozycji – Elnoor

0

Wystarczy zmiana poz korzeń Harry Mad odpowiedzieć

<item 
    android:title="Ещё" 
    app:showAsAction="always" 
    android:icon="@drawable/ic_more_vert"> 
    ... 
0

Korzystając android:actionLayout w tagu element menu, aby określić niestandardowy lyout (ikona z tekstem). Pozycja menu będzie wyglądać następująco:

<item 
    android:id="@+id/edit_menu" 
    android:actionLayout="@layout/custom_edit_row" 
    android:orderInCategory="100" 
    android:title="@string/edit" 
    app:showAsAction="always"></item> 

Edytuj

custom_edit_row.xml 

będą:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/relativeLayout1" 
style="@android:style/Widget.ActionButton" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:clickable="true"> 

<ImageView 
    android:id="@+id/imageViewEdit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/edit_ic" /> 

<TextView 
    android:id="@+id/tvEdit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Edit" /> 

+1

Dzięki Saad, rozumiem. Ale czy możesz mi pokazać przykładowy układ "custom_edit_row"? – Elnoor

+0

@Elnoor zobacz zmiany –

+0

To nie działało Saad – Elnoor

0
<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=".YourActivityName"> 

<item 
    android:id="@+id/action_settings" 
    android:icon="@android:drawable/btn_dialog" 
    android:title="@string/action_settings" 
    app:showAsAction="always"> 

    <menu> 
     <item 
      android:id="@+id/profile" 
      android:icon="@drawable/common_google_signin_btn_icon_light_disabled" 
      android:title="PROFILE" 
      app:showAsAction="always" /> 
    </menu> 

</item> 

+0

Czy możesz wyjaśnić swoją odpowiedź? ** dobra odpowiedź ** zawsze zawiera wyjaśnienie, co zostało zrobione i dlaczego zostało to zrobione w taki sposób, nie tylko dla PO, ale dla przyszłych odwiedzających SO. –