Ich schreibe eine Android-App, in der ich versuche, Überlaufmenüelemente für ActionBar anzeigen
mit diesem tollen Tutorial-Link: http://wptrafficanalyzer.in/blog/adding-action-items-and-overflow-menu-items-to-action-bar-in-Android/
Problem:
Not getting Overflow Menu Items (Icon)
Weitere Informationen finden Sie im folgenden Screenshot:
Manifest.xml:
<uses-sdk Android:minSdkVersion="14" />
<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name" >
<activity
Android:name=".MainActivity"
Android:label="@string/app_name"
Android:uiOptions="splitActionBarWhenNarrow"
>
items.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/phone"
Android:title="@string/phone"
Android:icon="@drawable/phone"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/computer"
Android:title="@string/computer"
Android:icon="@drawable/computer"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/gamepad"
Android:title="@string/gamepad"
Android:icon="@drawable/gamepad"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/camera"
Android:title="@string/camera"
Android:icon="@drawable/camera"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/video"
Android:title="@string/video"
Android:icon="@drawable/video"
Android:showAsAction="ifRoom|withText"
/>
<item
Android:id="@+id/email"
Android:title="@string/email"
Android:icon="@drawable/email"
Android:showAsAction="ifRoom|withText"
/>
</menu>
Ich verwende dieses Tutorial und versuche, Abbildung 6: Aktionselemente und Überlaufmenü in der geteilten Aktionsleiste zu erstellen.
Bitte helfen Sie mir, Überlaufmenüpunkte (ICON) in der Aktionsleiste anzuzeigen
Jetzt, wenn ich im Emulator auf die Menüschaltfläche klicke, erhalte ich die Menüeinträge zur Ruhe....
Um das Drei-Punkt-Symbol für die Aktionsleiste anzuzeigen, verwenden Sie einfach die unten stehende Methode in OnCreate ():
private void getOverflowMenu() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Wenn Ihr Gerät über eine Menü-Schaltfläche verfügt, wird das Überlauf-Symbol nicht angezeigt. Bei neueren Telefonen wird die Überlauf-Schaltfläche angezeigt. Ich würde die Antwort von ASMUIRTI nicht empfehlen, da dies ein schrecklicher Hack ist, der die Konsistenz mit den restlichen Apps auf der Plattform bricht.
du musst benutzen
Android:showAsAction="never"
lassen Sie das Android-Gerät entscheiden, ob das Überlaufmenü für dieses Gerät erforderlich ist.
Dies könnte eine andere Arbeit sein, die mir wirklich geholfen hat. Halten Sie einen Punkt mit drei Punkten ein und geben Sie ihn als Menüpunkt an.
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/saveDetails"
Android:showAsAction="always"
Android:title="@string/save"/>
<item
Android:id="@+id/menu_overflow"
Android:icon="@drawable/dts"
Android:orderInCategory="11111"
Android:showAsAction="always">
<menu>
<item
Android:id="@+id/contacts"
Android:showAsAction="never"
Android:title="Contacts"/>
<item
Android:id="@+id/service_Tasks"
Android:showAsAction="never"
Android:title="Service Tasks"/>
<item
Android:id="@+id/charge_summary"
Android:showAsAction="never"
Android:title="Charge Summary"/>
<item
Android:id="@+id/capture_signature"
Android:showAsAction="never"
Android:title="Capture Signature"/>
</menu>
</item>
</menu>
Wenn Sie Bibliotheken verwenden, um Menüelemente in der Aktionsleiste anzuzeigen, müssen Sie die folgende Syntax in Ihrer XML-Datei verwenden:
yourappname:showAsAction="ifRoom|withText"
Wenn ich Ihre Frage richtig verstanden habe und Sie alle Symbole in der Aktionsleiste anzeigen möchten, ändern Sie diese Parameter in Ihren Menüelementen
Android:showAsAction="ifRoom|withText"
zu diesem
Android:showAsAction="always"
Innerhalb von AndroidManifest.xml zwischen add
Android:theme="@Android:style/Theme.Holo.Light"
dadurch wird die Aktionsleiste in Ihrer Anwendung hinzugefügt.
Gehen Sie danach zu menu.xml und fügen Sie die folgenden hinzu
xmlns:tools="http://schemas.Android.com/tools
zwischen Schließlich in jedem Artikel hinzufügen
Android:showAsAction="always"
tools:ignore="AppCompatResource"
Die Telefone mit der Menü-Hardware-Taste zeigen zusätzliche Menüpunkte beim Klicken auf die Hardware-Schaltfläche an. Neuere Telefone ohne Hardware-Menü-Schaltfläche fügen der Aktionsleiste automatisch ein Überlauf-Menüsymbol hinzu. Die zusätzlichen Menüelemente sind diejenigen, bei denen die Eigenschaft "showAsAction" auf "never" gesetzt ist.