2017-04-07 155 views
1

當使用AppCompatActivity指定getSupportActionBar().setDisplayHomeAsUpEnabled(true)使用樣式而不是以編程方式進行時,可以使用它嗎?setDisplayHomeAsUpEnabled使用樣式屬性

我可以指定drawable本身,但是如何使用樣式來啓用它?

<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> 

回答

2

在款式:

<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> 

將箭頭推出活動:

enter image description here

+0

我剛剛測試了一個空項目。有用。謝謝。還不確定是什麼讓它在另一個項目中不起作用。 –

+0

我不知道你是否曾經在downvoting之前嘗試過它。 – azizbekian

+0

我做過了,但正如你所指出的那樣,它需要一個空項目的測試。剛剛發現問題,並且您正在聲明'actionBarStyle',並且正在使用'actionBarTheme'。我不知道爲什麼有兩個,但指定homeAsUpIndicator在'actionBarTheme'和'actionBarStyle'中工作,但是'displayOptions'沒有。 –

1

它不可能通過xml啓用它。您只能在清單中設置父級活動:

<activity 
     android:name=".CurrentActivity" 
     android:label="@string/app_name" 
     android:parentActivityName=".MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value=".MainActivityy" /> 
    </activity> 

但是,您無法通過xml啓用它。反正它只是一行代碼。

+0

聲明在AndroidManifest.xml父活動是無關的問題。 –