wake-up-neo.com

Aktionsleiste zeigt keine Symbole für die Aktionsansicht an

Ich verwende die neue Aktionsleisten-Unterstützung und alle meine Aktionsansichten werden im Überlauf und nicht als Symbole in der Leiste angezeigt. Meine App ist für 7+ API.

HomeAktivität:

public class HomeActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setTitle(R.string.app_name);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.home, menu);
        return true;
    }
}

home.xml

<item
    Android:id="@+id/action_settings"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    Android:title="@string/action_settings"/>
<item
    Android:id="@+id/action_browse"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    Android:title="@string/title_activity_browse"/>
<item
    Android:id="@+id/action_search"
    Android:actionViewClass="Android.widget.SearchView"
    Android:icon="@Android:drawable/ic_menu_search"
    Android:showAsAction="ifRoom|collapseActionView"
    Android:title="@string/text_search"/>
<item
    Android:id="@+id/action_scan"
    Android:icon="@drawable/action_scan"
    Android:showAsAction="always"
    Android:title="@string/title_activity_browse"/>

Ich verwende Nexus 7 mit 4.3 und LGP500 mit 2.3.3 und ohne Symbole. Ich habe auch Android: theme = "@ style/Theme.AppCompat.Light.DarkActionBar" im Manifest hinzugefügt und mein Projekt verweist korrekt auf Android-support-v7-appcompat, wie im offiziellen Dokument beschrieben.

30
Jumpa

sie müssen Ihre menu Ressourcendateien mit den Attributen für die Unterstützungsbibliothek definieren.

Um die Back-Unterstützung zu implementieren, werden sie anstelle der in der älteren Android Version definierten gelesen.

<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:yourapp="http://schemas.Android.com/apk/res-auto" >

<item
    Android:id="@+id/action_settings"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    yourapp:showAsAction="never"
    Android:title="@string/action_settings"/>
<item
    Android:id="@+id/action_browse"
    Android:orderInCategory="100"
    Android:showAsAction="never"
    yourapp:showAsAction="never"
    Android:title="@string/title_activity_browse"/>
<item
    Android:id="@+id/action_search"
    Android:actionViewClass="Android.support.v7.widget.SearchView"
    Android:icon="@Android:drawable/ic_menu_search"
    Android:showAsAction="ifRoom|collapseActionView"
    yourapp:showAsAction="ifRoom|collapseActionView"
    yourapp:actionViewClass="Android.support.v7.widget.SearchView"
    Android:title="@string/text_search"/>
<item
    Android:id="@+id/action_scan"
    Android:icon="@drawable/action_scan"
    Android:showAsAction="always"
    yourapp:showAsAction="always"
    Android:title="@string/title_activity_browse"/>

</menu>

[~ # ~] nb [~ # ~] Denken Sie daran, dass für die SearchView-Klasse geändert wurde . Es wird jetzt das aus der Support-Bibliothek verwendet, sodass Sie Ihren Code auch im onCreateOptionsMenu () aktualisieren müssen

EDIT: hier ist ein ziemlich gutes Tutorial für die Migration von ActionBarSherlok nach AppCompat

82
Mario Lenci