2013-04-20 11 views
8

Ich kann nicht scheinen, ein Bild und einen Text im Hochformat auf Menüpunkte in der Aktionsleiste zu arbeiten, egal was ich versuche. Ich habe sogar versucht Orientierung android PorträtActionBar mit Symbol und Text im Hochformat

Meine XML zu erzwingen:

<item android:id="@+id/menu_save" 
    android:icon="@drawable/content" 
    android:orderInCategory="100" 
    android:title="New Group" 
android:showAsAction="withText|always" /> 

Hat jemand herausgefunden?

+1

Ich bin mir nicht sicher, dass dies einen Unterschied machen wird, aber versuchen Sie '' immer | mitText ''stattdessen – iTurki

+0

@iturki Ich bezweifle, dass dies funktioniert. Siehe meine Antwort unten :) – Ahmad

Antwort

9

Aus der Datei config.xml des nativen ActionBar:

Werte:

<bool name="config_allowActionMenuItemTextWithIcon">false</bool> 

Werte-480dp:

<bool name="config_allowActionMenuItemTextWithIcon">true</bool> 

Um Ihre Frage zu beantworten:

No Sie kann das nicht, wenn die Gerätebreite kleiner als 480dp ist. (Es sei denn, Sie möchten eine benutzerdefinierte ROM mit einem modifizierten Framework erstellen)

+1

Nun, da geht diese Idee. Ich vermute, krank nur erstellen benutzerdefinierte Schaltflächen in einer Ansicht. Danke! – Dnaso

0

Ahmads Antwort macht deutlich, warum dies nicht möglich ist. Es ist ärgerlich, dass die Aktionsleiste nicht einfacher anzupassen ist.

Eine schnelle und schmutzige Lösung besteht darin, zwei Schaltflächen in das Menü einzufügen, das Symbol von einem zu entfernen und dem zweiten einen anderen Namen zu geben. Dann replizieren Sie in der entsprechenden Java-Datei die Funktionalität für die zusätzliche Schaltfläche in onOptionsItemSelected. Dies führt dazu, dass Sie eine benutzerdefinierte Ansicht für die Aktionsleiste erstellen müssen.

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" > 
    <item android:id="@+id/action_done" 
      android:icon="@drawable/ic_done" 
      android:title="@string/done" 
      yourapp:showAsAction="always" /> 
    <item android:id="@+id/action_done2" 
      android:title="@string/done" 
      yourapp:showAsAction="always" /> 
    <item android:id="@+id/action_cancel" 
      android:icon="@drawable/ic_cancel" 
      android:title="@string/cancel" 
      yourapp:showAsAction="always" /> 
    <item android:id="@+id/action_cancel2" 
      android:title="@string/cancel" 
      yourapp:showAsAction="always" /> 
</menu> 

Ich sah auch diese Antwort, aber es hat nicht versucht: withText in split ActionBar #Google Calendar Method. So wird das in Google Kalender gemacht, aber auch eine benutzerdefinierte Ansicht, die die Aktionsleiste ersetzt.

Verwandte Themen