2016-09-05 1 views
0

Aktionselemente erscheinen immer im Overlay. Hier ist der Code:Android: Aktionsknopfsymbole erscheinen immer im Overlay

XML:

<?xml version="1.0" encoding="utf-8"?> 
<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=".MainActivity"> 

    <item android:id="@+id/action_create_order" 
     android:title="@string/action_create_order" 
     android:icon="@drawable/ic_event_black_18dp" 
     android:orderInCategory="1" 
     app:showAsAction="always" /> 

    <item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="never" /> 

</menu> 

und in der Haupttätigkeit:

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater menuInflater = getMenuInflater(); 
    menuInflater.inflate(R.menu.menu_main, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

Sollte nicht der erste Punkt auf der Aktionsleiste angezeigt, weil der "App: showAsAction =" immer“?

Antwort

0

Wenn es für Fragmente ist

benutzerdefinierten Namespace wird verhindert, dass showAsAction aus zeigt. in Aktionsleiste

app:showAsAction="never" 

Versuchen Sie dieses Stück Code so

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:id="@+id/action_create_order" 
    android:title="@string/action_create_order" 
    android:icon="@drawable/ic_event_black_18dp" 
    android:orderInCategory="1" 
    android:showAsAction="always" 
    android:icon="@android:drawable/ic_menu_add" /> 

<item android:id="@+id/action_settings" 
    android:title="@string/action_settings" 
    android:orderInCategory="100" 
    android:showAsAction="never" /> 

</menu> 
+0

Nein, es ist nicht für Fragmente, es ist für die Haupttätigkeit. – bazera

0

Verwenden Sie diese in Ihrem Artikel, in Aktionsleiste angezeigt

app:showAsAction="always"

Wenn Sie nicht wollen, Element anzuzeigen , anstelle der Erstellung des Optionsmenüs

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 
+0

Ich benutze das bereits in meinem Artikel, wie Sie aus dem obigen Code sehen können. Auch versucht "getMenuInflater(). Inflate (R.menu_main, Menü);" hilft aber auch nicht. – bazera

+0

können Sie Ihren ersten Artikel als App geben: showAsAction = "ifRoom", in der Aktionsleiste anzuzeigen @ bazera –

+0

Ich habe es korrigiert. Ich habe gerade "App" mit "Android" geändert. Es gab mir einen Fehler, aber ich ignorierte es. Startete die App und alles funktionierte gut :) – bazera