2012-10-19 19 views
13

我用下面的代碼在我的應用我家圖標設置爲特定的繪製:我可以使用styles.xml設置我的操作欄的主圖標嗎?

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setIcon(R.drawable.ic_menu); 
getSupportActionBar().setDisplayShowTitleEnabled(false); 

但是我是有「創造的裝飾觀點和我的onCreate執行」作爲之間的「滯後」問題這裏由傑克沃頓解釋說:ActionBar Lag in hiding title

在解決上面的鏈接是創建一個新的風格,並在清單中聲明它,我也這樣做:

<resources> 
<style name="AppTheme" parent="android:Theme.Light" /> 

<style name="WATheme" parent="Theme.Sherlock.Light"> 
    <item name="android:actionBarStyle">@style/WATheme.ActionBar</item> 
    <item name="actionBarStyle">@style/WATheme.ActionBar</item> 
</style> 

<style name="WATheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid"> 
    <item name="android:displayOptions">homeAsUp|showHome</item> 
    <item name="displayOptions">homeAsUp|showHome</item> 
</style> 
</resources> 

清單:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:theme="@style/WATheme" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

這是現在的工作很好,我有我的主頁按鈕,最多的配置,但我還是想的圖標更改爲另一個具體的繪製,只有在這個活動中,而無需更改任何android:icon的清單。我怎樣才能做到這一點?

希望它很清楚。謝謝。

回答

27

好吧,只要找出缺少的東西。在styles.xml,我不得不這樣做是爲了增加下面幾行:所以在最後

<item name="android:icon">@drawable/ic_menu</item> 
<item name="icon">@drawable/ic_menu</item> 

我有這樣的事情:

<resources> 
<style name="AppTheme" parent="android:Theme.Light" /> 

<style name="WATheme" parent="Theme.Sherlock.Light"> 
    <item name="android:actionBarStyle">@style/WATheme.ActionBar</item> 
    <item name="actionBarStyle">@style/WATheme.ActionBar</item> 
    <item name="android:icon">@drawable/ic_menu</item> 
    <item name="icon">@drawable/ic_menu</item> 
</style> 

<style name="WATheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid"> 
    <item name="android:displayOptions">homeAsUp|showHome|showTitle</item> 
    <item name="displayOptions">homeAsUp|showHome|showTitle</item> 
</style> 
</resources> 

它工作得很好,現在,所有的displayOptions正確設置並且沒有「滯後」。 :)

+0

謝謝,RenanFerrari。正是我在找的東西。 – BruceHill

相關問題