Home-Schaltfläche in der Aktionsleiste funktioniert nicht in Lollipop

8

Ich habe ein Problem, weil ich App für Lollipop ohne support library v7 entwickle, also muss ich Standard ActionBar verwenden. Zuvor habe ich setHomeButtonEnabled in mehreren Aktivitäten mit actionBar verwendet.

Wenn ich das App-Thema auf Material umgestellt habe, funktioniert alles gut, außer der setHomeButtonEnabled-Methode.

Der Titel ist nicht anklickbar.

Hilfe!

    
TommyNecessary 14.11.2014, 08:51
quelle

1 Antwort

17

Aus irgendeinem Grund hat jemand bei Google entschieden, dass diese zu No-Ops werden sollten. Dies kann unten gesehen werden.

ToolbarWidgetWrapper.java

%Vor%

ToolbarActionBar.java

%Vor%

Es sieht so aus, als ob ToolbarWidgetWrapper, mit dem die Symbolleiste den ActionBar-Unterschieden zugeordnet wird, das Nav-Symbol in der Werkzeugleiste als "Home As Up Indicator" behandelt. Also nur dieser Teil ist anklickbar. Das neue Logo, das Sie in der Toolbar einstellen können, kann niemals anklickbar sein. Sie legen nicht einmal die Ansicht offen, ihre private Rollenaugen .

Also die erste Arbeit ist, wenn Sie nicht die "Home As Up" -Funktion verwenden oder Sie sind bereit, Ihre nach oben ziehbaren mit Ihrer Heimat zu kombinieren, dann können Sie einfach das android:homeAsUpIndicator Attribut in Ihrem android:actionBarStyle zusammen mit android:displayOptions="homeAsUp" .

%Vor%

Offensichtlich kann das Gleiche mit Code gemacht werden.

%Vor%

Aber das bedeutet, dass es nicht erscheint, während die Aktivität tatsächlich geladen wird. Also am besten mit der Theming Option.

Die dritte Option, die am besten ist, besteht darin, die Navigationsschaltfläche für die neue Symbolleistenansicht zu gestalten. Das benutzt android:navigationButtonStyle aber rate mal was .. sie haben das nicht öffentlich gemacht. Ich glaube, das ist ein echter Fehler, aber das alles fängt an, sich wie die ursprünglichen Probleme zu fühlen, die wir alle bei ActionBar hatten.

Lasst uns also herumarbeiten, die Arbeit herum. Ok, lass uns versuchen, einfach android:navigationIcon in android:toolbarStyle zu setzen. Nee. Ok, probieren Sie alle anderen möglichen Variationen aus, die Sie sich vorstellen können, einschließlich android:actionBarStyle und android:actionBarTheme . Nee. Dies ist wahrscheinlich, weil die navigationIcon im Standard-ActionBar / Activity / Toolbar-Chaos an einer Stelle überschrieben wird. Ich kann mich nicht darum kümmern, wo und um mich herum zu arbeiten.

Ok, also lasst uns endlich die flexibelste Option wählen. Löschen Sie die Standard-Home-Schaltfläche, und verwenden Sie unsere eigene, indem Sie die ältere benutzerdefinierte Navigationsfunktion implementieren. Dies bedeutet, wenn Sie bereits ein benutzerdefiniertes Navigationsgerät verwenden, müssen Sie Ihr Navigationsgerät mit diesem kombinieren.

values-v21 / styles.xml

%Vor%

Layout-v21 / nav_layout.xml

%Vor%

Fügen Sie in Ihrer Activity / BaseActivity-Klasse Folgendes hinzu. Und dies wird die Home-Taste vortäuschen.

%Vor%     
Simon 19.11.2014, 16:41
quelle