Ich habe eine Aktionsleiste in meiner App mit 3 Elementen.
Aufgrund von Platzproblemen können nur 2 angezeigt werden, daher würde ich erwarten, dass der erste und der Rest im Überlauf angezeigt werden. In der Praxis werden jedoch nur die ersten beiden Elemente angezeigt, und es ist kein Überlauf erkennbar.
Hier ist der relevante Code: list_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_insert"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/menu_insert"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_call"
android:icon="@android:drawable/ic_menu_call"
android:title="@string/menu_call"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_agenda"
android:icon="@android:drawable/ic_menu_agenda"
android:title="@string/menu_agenda"
android:showAsAction="ifRoom|withText"/>
</menu>
Activity.java
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu, menu);
return true;
}
android
overflow
android-actionbar
Mats Raemen
quelle
quelle
Antworten:
Wenn Sie die drei Punkte anzeigen möchten, unabhängig von der Menüschaltfläche des Geräts! Dann können Sie diese Methode in Ihrer Anwendungsklasse 'onCreate method-' aufrufen.
quelle
res / menu / menu.xml
MainActivity.java
Laden Sie das Aktionsleisten-Symbolset herunter
quelle
android:showAsAction="always"
für mehr ArtikelMir ist klar, dass dies kein Überlaufmenü ist, aber es ist ähnlich. Okay, das ist einfach, aber schwer herauszufinden.
Sie benötigen zunächst einen Menüpunkt, den Sie als Überlauf-Inflater verwenden möchten. Beispiel
Wenn Sie Ihren Artikel haben, fügen Sie im Überlaufmenü ein Untermenü hinzu, das Ihre gewünschten Artikel enthält. Beispiel:
Wenn Sie darauf klicken, werden andere Elemente darin aufgeblasen. Meine Anwendung verwendet ActionBarSherlock 4.0. Bevor dies für Sie funktioniert, müssen Sie auf die "SplitActionBar" zugreifen. (Funktioniert weiterhin in der Standard-Android-Aktionsleiste)
So geht's: In Ihrer AndroidManifest.xml-Datei müssen Sie diesen Code unter der Aktivität hinzufügen, in der Sie das Überlaufmenü benötigen.
HINWEIS: Ihr Artikel, der Ihr Überlaufmenü aufbläst, MUSS
showAsAction="always"
Vwola! Sie haben ein Überlaufmenü! Hoffe ich habe dir geholfen. :) :)
quelle
Auf Geräten mit Hardware-Menütasten (Galaxy S3, hartnäckig wie Samsung ...) verhält sich das Überlaufmenü mithilfe der Hardware-Menütaste wie das "traditionelle" Menü.
quelle
Wenn Sie das Menü "Überlauf" sagen, meinen Sie damit die drei Punkte, die am Ende angezeigt werden, um anzuzeigen, dass mehr Elemente vorhanden sind ... oder die geteilte Aktionsleiste, die unten für Überlaufelemente angezeigt wird?
Wenn Sie die geteilte Aktionsleiste meinen, sollten Sie diese zur Manifestdatei Ihrer Aktivität hinzufügen
Standardmäßig sollte das Überlaufmenü mit drei Punkten automatisch angezeigt werden. Daher ist es schwierig, anhand der oben angegebenen Informationen das Problem zu erkennen.
quelle
So zeigen Sie in actionbarcompat immer einen Aktionsüberlauf (drei Punkte) an:
in der
Menüdatei Beispiel: main.xml
und in der Aktivitätsdatei:
Es hat gut für mich funktioniert.
Getestet auf Google Nexus S, Samsung S3.
quelle
Es scheint, dass auf Geräten mit einer Menüschaltfläche das Überlaufmenü nicht in der Aktionsleiste angezeigt wird. Wir können auch nicht wissen, ob ein Gerät vor API-Level 14 (4.0+) über eine Hardware- Menüschaltfläche verfügt.
Diese Lösung fügt eine Überlaufschaltfläche zu einer hinzu
android.support.v7.app.ActionBar
, die das Standardoptionsmenü nur in Pre-Honeycomb (<3.0) öffnet, andernfalls dem System überlässt. In jedem Fall können Sie zwischenalways
oderifRoom
für alle Aktionen wählen .Rufen Sie das Überlaufsymbol aus dem Aktionsleisten-Symbolpaket ab .
Fügen Sie ein Menü hinzu (ich lasse einige nicht relevante Teile wie Titel, Reihenfolge usw. weg)
Entfernen Sie unsere Überlaufaktion ab 3.0+
Rufen Sie schließlich
Activity.openOptionsMenu()
von der Überlaufaktion auf.Äh ... nein. Sie können nicht
openOptionsMenu()
über eine Menüschaltfläche anrufen ... aber wenn Sie AndroidAnnotations verwenden, sind Sie ganz einfach:Wenn nicht, sollten Sie so etwas tun, nehme ich an
quelle
Versuchen Sie, das Thema der App von Theme.AppCompat.Light.DarkActionBar in Theme.AppCompat.Light zu ändern
quelle
Legen Sie
xmlns:your_app_name="http://schemas.android.com/apk/res-auto"
innerhalb Menü - Tag und stattdessenandroid:showAsAction="always"
Verwendungyour_app_name:showAsAction="always"
für zB
quelle