webentwicklung-frage-antwort-db.com.de

Wie zeige ich Überlaufmenüelemente in der Aktionsleiste in Android an?

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: enter image description here

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

28
Babu

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();
   }
 }
47
ASMUIRTI

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.

57
Akshat Agarwal

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

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"
1
Mohammad

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"
1
Neil

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"
0
KostasA

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.

0
v01d