Überlauf Aktionen über ActionBar nicht angezeigt
Habe ich eine ActionBar mit ActionBar Sherlock, wo ich es brauche-display overflow, weil ich habe mehr Aktionen, als Zimmer. Aber es nicht zeigen, das überlauf-Symbol. Hier ist meine Konfiguration:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_search"
android:icon="@drawable/action_search"
android:title="@string/menu_search"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_library"
android:icon="@drawable/hardware_headphones"
android:title="@string/my_music"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_downloads"
android:icon="@drawable/av_download"
android:title="@string/downloads"
android:showAsAction="ifRoom|withText"/>
</menu>
Und hier ist der code, um es einzurichten:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getSupportMenuInflater();
menuInflater.inflate(R.menu.shopping_menu, menu);
MenuItem searchMenuItem = menu.findItem(R.id.menu_search);
searchMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
startActivity(new Intent(ShopActivity.this, SearchDialog.class));
return false;
}
});
MenuItem downloadMenuItem = menu.findItem(R.id.menu_downloads);
downloadMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
startActivity( new Intent(ShopActivity.this, DownloadQueueActivity.class) );
return false;
}
});
MenuItem myMusicItem = menu.findItem(R.id.menu_library);
myMusicItem.setOnMenuItemClickListener( new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
startActivity(new Intent(ShopActivity.this, MyMusicActivity.class));
return false;
}
});
return true;
}
Ist, habe ich mich über die demos in der ActionBar Sherlock, aber ich kann nicht sagen, was Sie anders machen, um den überlauf als das, was ich Tue. Also, was ist hier passiert, warum es nicht zeigen?
- Wenn Sie eine physische Menü-Taste, wird das überlauf-Kennzeichen nicht zeigen. Das ist ein Verhalten durch das design. Siehe here für mehr details, auf eine andere Frage.
- Diese fallen in eine Antwort, und ich werde vergeben Sie die Punkte. Dank
- Hier ist ActionBar. Es ist dasselbe, als Tom ' s Kommentar, aber es ist von Android die offizielle Dokumentation.
InformationsquelleAutor chubbsondubs | 2012-07-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine physische Menü-Taste, wird das überlauf-Kennzeichen nicht zeigen. Das ist ein Verhalten durch das design. Sehen hier für weitere Einzelheiten auf eine andere Frage.
Hmm ich denke es gibt hier zwei Probleme. Zunächst wird, wie t0mm13b Staaten, wenn das Gerät über eine physische menu-Taste, wird das überlauf-Kennzeichen NICHT zeigen. Das ist by design. Obwohl in meiner Erfahrung, es wird nicht für jedes Gerät (leider...)
Das zweite Problem ist, dass, wenn Sie erzwingen möchten, dass ein Element, um den überlauf, müssen Sie die showAsAction auf "nie". Ansonsten, die einzigen Elemente, die in die überlauf sind diejenigen, die einfach "passen nicht" in der Aktionsleiste. Und da haben Sie 3 Elemente, die Sie anzeigen möchten, mit text.. Sie sind ziemlich garantiert, um mindestens einen überlauf-Element, und daher ist das overflow-Symbol (mit dem VORBEHALT des ersten Absatzes)
Versuchen, durch ändern der
android:showAsAction
tag zuapp:showAsAction
nach den Android-guide in dermenu_main.xml
- Datei, wie unten gezeigtFügen Sie diese Zeile, wenn nicht