Mit Unterstützung der action-bar home aktiviert
Habe ich gerade geändert, die unseren code zur Verwendung der neuen SupportActionBar in der v7-appcompat-Bibliothek, aber wenn der code ausgeführt wird auf einem Jellybean Handy (vermutlich das gleiche problem besteht für Honeycomb-und Ice Cream Sandwich) die home-Taste nicht immer scheinen, um aktiviert zu werden.
Aufrufen getSupportActionBar().setHomeButtonEnabled(true); scheint nicht das zu tun, was es sagt, aber Sie funktioniert für Gingerbread-Handys.
Wenn ich ersetzen Sie es mit getActionBar().setHomeButtonEnabled(true) funktioniert es.
Dem Thema, das ich verwenden für v11+ ist wie folgt:
<style name="MyTheme" parent="@style/Theme.AppCompat">
<item name="android:windowActionBar">true</item>
<item name="android:windowNoTitle">false</item>
<item name="android:listViewStyle">@style/MyListView</item>
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
<item name="android:windowSoftInputMode">stateAlwaysHidden</item>
<item name="android:buttonStyle">@style/MyButton</item>
<item name="android:radioButtonStyle">@style/MyRadioButtonStyle</item>
<item name="android:windowContentOverlay">@drawable/ab_solid_dove_grey</item>
<item name="android:windowTitleSize">@dimen/action_bar_height</item>
<item name="android:selectableItemBackground">@drawable/sel_standard_item</item>
<item name="android:windowBackground">@drawable/default_bg</item>
<item name="android:actionMenuTextAppearance">@style/MyActionBarText</item>
<item name="android:actionMenuTextColor">@color/gallery</item>
<item name="android:tabWidgetStyle">@style/MyTabWidget</item>
</style>
Und die action bar style v11+ definiert ist:
<style name="MyActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">useLogo|showHome|showCustom</item>
<item name="displayOptions">useLogo|showHome|showCustom</item>
<item name="android:actionBarSize">@dimen/action_bar_height</item>
<item name="android:icon">@drawable/ic_launcher</item>
<item name="android:background">@android:color/transparent</item> <!-- Remove blue line from bottom of action bar -->
</style>
Jemand, warum die home-Taste ist nicht immer aktiviert, wenn Sie auf einem Android-version, die unterstützt Aktionsleiste korrekt.
=== UPDATE ===
Ich habe gerade geschaut bei der source-code für die appcompat-Bibliothek und habe festgestellt, dass die folgenden in ActionBarImplBase das sieht mir falsch zu sein:
setHomeButtonEnabled(abp.enableHomeButtonByDefault() || homeAsUp);
Dies bedeutet, dass der home-button wird erst aktiviert, wenn die Android-version ist weniger als ICS oder wenn ich den aktiviert hast das Kennzeichen? - was ich nicht will.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, mit allen drei von diesen (auch tauschen für
getSupportActionbar()
)?Haben Sie versucht, die Handhabung der Taste manuell?
getSupportActionBar().setDisplayHomeAsUpEnabled(true)
für mich gearbeitet. Danke.Diese funktionierte für mich:
Die Methode
onSupportNavigateUp()
wird aufgerufen, wenn Sie den zurück-button in derSupportActionBar
.Versuchen mit Sherlock-Bibliothek für android-Geräte wie Lebkuchen cos android action bars ist nur unterstützt von 3.0 nach oben, so dass die sherlock-lock-Bibliothek gibt Ihnen die Abwärtskompatibilität.
http://actionbarsherlock.com/ --- download-Bibliothek hier.
Dann fügen Sie diese Zeilen in Ihrem code.
Dies würde Ihnen helfen, fügen Sie ein back-home-Taste im action bar. Es würde auch Ihr Symbol nicht sichtbar, wenn Sie nicht wollen, es zu zeigen.
Aber wenn Sie möchten, dass Ihre app-Symbol, zeigen Sie auf alle Aktivitäten einfach diese Zeile auskommentieren unten
actionBar.setIcon(android.R.Farbe.transparent);
Nun versuchen Sie Bitte diese. Denn ich konnte mein eigenes problem lösen, wie dieses war, obwohl es auf Sherlock. Aus Ihrer Stile, die ich oben sehen können haben Sie einige Anpassung an Ihre Themen. In meinem Fall hatte ich einige Anpassungen an meine Sherlock-theme und das war es, was gab mir problem cos auf android 4.0 und oben mein Thema ist fehlgeschlagen. also habe ich einfach Hinzugefügt, ein Stück code, der sagt, android oder verwenden Sie die Standard-Sherlock Thema, wenn es läuft auf android 4.0 und höher. Also ich vermute, das würde für Sie arbeiten. Sie sagen, android zu verwenden, das Standard-Thema von v7-appcompat-Bibliothek auf die version von android, die nicht für Sie arbeiten.
Code ist unten:
In Ihrem Fall Bearbeiten das Thema v7-appcompat-Bibliothek.
Markieren Sie bitte als Antwort, wenn es für Sie funktioniert. Ich glaube, es könnte möglich sein, das Design anpassen von code für Orte waren, die Sie verwenden dieses.
Können Sie das ActionBar-um Ihre Aktivitäten beim laufen auf API level 7 oder höher durch die Erweiterung ActionBarActivity Klasse für Ihre Aktivität und Einstellung der Aktivität Thema zu Thema.AppCompat oder einem ähnlichen Thema.