2017-04-07 4 views
1

Ist es bei Verwendung von AppCompatActivity möglich, getSupportActionBar().setDisplayHomeAsUpEnabled(true) mithilfe von Stilen anzugeben, anstatt dies programmgesteuert zu tun?setDisplayHomeAsUpEnabled unter Verwendung eines Stilattributs

Ich kann das Zeichen selbst angeben, aber wie aktiviere ich es mit Stilen?

<style name="MyActivityTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionBarTheme">@style/MyActionBar</item> 
</style> 

<style name="MyActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="homeAsUpIndicator">@drawable/ic_clear</item> 
    <!-- Enable the above using a style attribute --> 
</style> 

Antwort

2

In Stile:

<style name="MyActionBarStyle" parent="Widget.AppCompat.Light.ActionBar.Solid"> 
    <item name="displayOptions">showTitle|homeAsUp</item> 
</style> 

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    ... 
    <item name="actionBarStyle">@style/MyActionBarStyle</item> 
</style> 

Wird Aktivität starten mit Pfeil:

enter image description here

+0

Ich habe gerade mit einem leeren Projekt getestet. Es klappt. Vielen Dank. Noch nicht sicher, was es in dem anderen Projekt nicht geschafft hat. –

+0

Ich frage mich, ob du es überhaupt versucht hast, bevor du es abgelehnt hast. – azizbekian

+0

Ich tat, aber wie Sie darauf hingewiesen, es erforderte einen Test mit einem leeren Projekt. Habe das Problem gefunden und du hast 'actionBarStyle' deklariert, und ich habe 'actionBarTheme' verwendet. Ich bin mir nicht sicher, warum es zwei gibt, aber die Angabe von homeAsUpIndicator funktioniert sowohl in 'actionBarTheme' als auch 'actionBarStyle', aber 'displayOptions' nicht. –

1

Es ist nicht möglich, es über XML zu aktivieren. Sie können die übergeordnete Aktivität nur im Manifest festlegen:

Sie können es jedoch nicht über XML aktivieren. Wie auch immer, es ist nur eine Zeile Code.

+0

Deklarieren Mutter Aktivität im AndroidManifest.xml ist nichts mit der Frage zu tun. –

Verwandte Themen