Android-Unterstützung der action-bar nicht angezeigt werden überlauf-Menü
Meine android-app unterstützt 2.2 und höher. Ich bin mit der appcompat-support-Bibliothek für die action-bar, also sollte es nur zeigen, wenn es Dinge gibt, die nicht passen. Ich will meine action bar zur Unterstützung der overflow-button (die drei vertikalen Quadrate) , zeigt ein Menü mit den anderen Elementen, die, wenn geklickt wird.
In meinem Menü Datei, ich habe drei Elementen eingerichtet. Aber auf der app sehe ich nur zwei von Ihnen, und die überlauf-Schaltfläche wird nicht angezeigt, wie gut.
activity_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sord.ids_connect="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:icon="@drawable/checkbox"
android:title="@string/action_settings"
sord.ids_connect:showAsAction="ifRoom" />
<item
android:id="@+id/action_settings2"
android:icon="@drawable/checkbox_checked"
android:title="@string/action_settings"
sord.ids_connect:showAsAction="ifRoom" />
<item
android:id="@+id/action_settings3"
android:icon="@drawable/ic_launcher"
android:title="@string/action_settings"
sord.ids_connect:showAsAction="ifRoom" />
</menu>
java-Datei
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
public class Activity_Menu extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_menu, menu);
//return true;
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
super.onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
}
manifest
<activity
android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
android:name="sord.ids_connect.Activity_Menu"
android:screenOrientation="portrait"
android:label="@string/title_activity_menu" >
</activity>
Wussten Sie, drücken Sie die MENÜ-Taste auf dem Gerät oder emulator? Auf dem emulator, auf die MENÜ-Taste zugeordnet ist Bildh.
Im Test auf meinem Handy, und wenn ich drücken Sie die Menü-Taste, sehe ich das Menü erscheint auf der Unterseite mit nur 1 option, die sagt, "Einstellungen", auch, warum nur 1 option dort angezeigt, wenn ich die 3 Elemente in der Menü-Datei?
Im Test auf meinem Handy, und wenn ich drücken Sie die Menü-Taste, sehe ich das Menü erscheint auf der Unterseite mit nur 1 option, die sagt, "Einstellungen", auch, warum nur 1 option dort angezeigt, wenn ich die 3 Elemente in der Menü-Datei?
InformationsquelleAutor omega | 2013-12-20
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Allgemeine Referenz
1 - Override onCreateOption und Blasen Sie das Menü
Hinweis
Egal, ob Sie true zurück, oder rufen Sie super
2 - Fügen Sie den namespace der menu.xml Datei.
3 - showAsAction zu immer oder ifRoom
4 - wenn Sie mit appcompat stellen Sie sicher, dass Sie die Tätigkeit erstreckt sich ActionBarActivity , die Sie nicht haben, um eine änderung der ActionBar in der Lage sein, Sie zu sehen menuOption in der bar.
Schließlich haben Sie so etwas wie [erinnern Sie sich, um Benutzer einen entsprechenden namespace für yourapp]
auf Ihre Aktivität
wie man dies in java ohne xml?
Okay, ich fand es in SupportMenuItem.setShowAsAction()
Hi @eOnOe .. ich folgte Ihren Anweisungen GENAU, aber ich kann einfach nicht machen, den überlauf angezeigt .. komisch .. stackoverflow.com/questions/23720815
app
stattyourApp
für mich gearbeitet.InformationsquelleAutor eOnOe
Wenn Sie mit der support-Bibliothek, die Sie benötigen, zu erklären, das showAsAction von Ihrem eigenen namespace, welches wie folgt Aussehen
app:showAsAction
. Sie können sich auf eOnOe's Antwort.Mit
android:showAsAction
funktioniert nicht mit der Unterstützung der Bibliothek, weil es nutzt seine eigene Implementierung der action bar anstatt der framework-Implementierung.Können Sie auch immer Gruppe Elemente in der Symbol-zum Beispiel:
InformationsquelleAutor Rakeeb Rajbhandari
Android zeigen overflow-Menü nur, wenn Ihr Gerät nicht haben Menü-Taste. Natürlich können Sie hack ein do-it-Standard für alle Geräte, aber es wird nicht empfohlen. Und für jeden Ihrer Elemente hinzufügen
android:showAsAction="never"
und dieses sagen Ihrem Gerät anzeigen das overflow-Menü, wenn Sie nicht haben Menü-Taste.InformationsquelleAutor horkavlna
Das ist der überlauf.
Weil die anderen beiden sind in der action-bar. Sie angegeben
ifRoom
, und es gab Platz für zwei, nicht drei.Es erscheint oben auf Geräte, die fehlende MENÜ-Taste, und auf alle Geräte mit Android 4.4 und höher. Siehe meinen blog-post für mehr: commonsware.com/blog/2013/12/09/menu-key-dead-again.html
Wie kann ich öffnen Sie das overflow-Menü mit java-code?
Sie können versuchen
openOptionsMenu()
aufActivity
, aber dies sollte nicht erforderlich sein.Was meinst du auf "Aktivität", kann man den code?
InformationsquelleAutor CommonsWare
Müssen Sie im Menü den Menü-layout wie unten
InformationsquelleAutor eshbeata
InformationsquelleAutor miten joshi
Ich hatte das gleiche problem. Ich löste es, indem:
1) kommentieren
return true;
2) die Kommentarzeichen
return super.onKeyUp(keyCode, event);
in der öffentlichkeit
boolean onKeyUp(int keyCode, KeyEvent event)
InformationsquelleAutor Prashanth Dn