2012-04-02 12 views
1

Ich habe meiner Anwendung Aktionsleiste hinzugefügt.Position der Aktionsleiste

Aus irgendeinem Grund auf meinem Galaxy Nexus erscheint das Überlaufmenü am unteren Bildschirmrand, während in den Stock Apps (Maps, Google Mail, Google Play, Kalender, etc) das Überlaufmenü oben auf dem erscheint Bildschirm.

Overflow at the bottom

Gibt es trotzdem, um es zu zwingen am oberen Rand des Bildschirms zusammen mit App-Titel zu erscheinen?

Hinweis: Die obere graue Leiste enthält den Titel meiner App, aber ich habe sie für diesen Screenshot entfernt.

+3

Dies wird nicht hilfreich sein, aber ich empfehlen die Verwendung von ActionBarSherlock.com anstelle der nativen Aktionsleiste für eine bessere Abwärtskompatibilität mit nicht-ICS-Anwendungen. – Navarr

+0

Danke für den Vorschlag. Ich muss noch die Rückwärtskompatibilität mit Nicht-ICS-Geräten in Betracht ziehen. – mob1lejunkie

+0

+1 mit @Navarr vereinbart –

Antwort

2

Wie die Leute in den Kommentaren gesagt haben, wenn Sie planen, mit Ihrer App an die Öffentlichkeit zu gehen, müssen Sie sich schließlich fügen und ABS verwenden, auch wenn es keine perfekte Lösung ist (es ist aber dicht dran). Aber, um Ihre unmittelbaren Probleme mit ActionBar - versuchen, diese Zeilen zu Ihrem Root-Menü in XML und fügte hinzu:

android:showAsAction="always" 

Stellen Sie sicher,

uiOptions="splitActionBarWhenNarrow" 

nicht vorhanden ist überall in Ihrem Android-Manifest. Sie können auch testen, ob

irgendwelche Auswirkungen auf die Position Ihres Menüs indirekt haben.

EDIT ~ Verwenden Sie auch etwas in der Form von Tabs oder anderen Elementen in Ihrer Aktionsleiste, die gerade nicht angezeigt werden, aber tatsächlich in der oberen Leiste angezeigt werden?

EDIT2 ~ Hier ist meine Optionen-Menü Code:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.demographics: 
     Intent intent = new Intent(); 
     intent.setClass(this, demoPanel.class); 

     startActivity(intent); 
     break; 
    case R.id.settings: 
     // another startActivity, this is for item with id "menu_item2" 
     break; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 

    return true; 
} 
+0

Die obere Leiste hat nichts als den Namen der App. Normalerweise verberge ich die obere Leiste, aber ich muss sie anzeigen, damit die Aktionsleiste funktioniert. – mob1lejunkie

+0

@ mob1lejunkie Ja, ich verstehe, dass du es zeigen musst. Ich hatte eine ähnliche Situation in meiner App, als es in den frühen Stadien war, aber ich erinnere mich nicht an die Umstände, die dazu führten, dass der Menü-Button in einer zweiten oberen Reihe statt in der unteren angezeigt wurde. Ich habe gerade meine App getestet und gespalten, als die Schmalheit dazu führte, dass mein Menü-Symbol ganz verschwand - da die oberste Zeile randvoll mit Tabs gefüllt ist. Ich bearbeite meinen Kommentar, damit Sie sehen können, wie mein Optionsmenü-Code aussieht, vielleicht wird es helfen. – Davek804

+0

Es stellte sich heraus, dass ich irgendwie uiOptions = "splitActionBarWhenNarrow" hatte, weshalb das Überlaufmenü unten angezeigt wurde. – mob1lejunkie

Verwandte Themen