2012-10-13 7 views
5

sonra işlem çubuğunda 'küçük üçgen rengini' değiştirebilirsiniz.nasıl <code>NAVIGATION_MODE_LIST</code></p> <pre><code>getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); </code></pre> <p>için <code>action bar</code> ayarlayın ve sonra bunun için bir adaptör set NAVIGATION_MODE_LIST

beklendiği gibi liste, ama gösterilmez varsayılan renk benim arka plan rengi çok yakın olduğu gibi listenin 'küçük üçgen' rengini değiştirmek gerekir.

Bunu yapmak mümkün mü, eğer yapabilirsem, nasıl yapabilirim?

cevap

12

Değiştirmek istediğiniz küçük üçgen, ActionBar ürünündeki Spinner widget'in arka planındadır. Arka plan bir state list drawable.

enter image description here

Mecbur üçgenin rengini değiştirmek için: devlet liste çekilebilir Öğeler bunun gibi 9-yama drawables vardır (bu özel bir Holo ışık tema için varsayılan durumu için hdpi versiyonu) Her bir dpi ve durumların kombinasyonu için çekilebilir olan bu 9-yama çekmecenin birkaç setini değiştirin. Ayrıca, Spinner widget'inin arka planı olarak kullanılabilmesi için özel durum listesinin çizilebilir olması gerekir.

Widget arka planını değiştirmek için temayı ayarlamanız gerekir. ActionBarSherlock (ABS) kullanıyorsanız, actionDropDownStyle öğeyi değiştirin ve yerel ActionBar değişimi için android:actionDropDownStyle öğeyi (Android 4.0 ve sonraki sürümleri çalıştıran aygıtlarda ABS yerel ActionBar kullanıyor olsanız bile) değiştirin.

tema gibi bir şey olmalıdır: olmalı

<style name="MyTheme" parent="SomeParentStyle> 
    <item name="actionDropDownStyle">@style/MyActionBarSpinnerStyle</item><!-- if you use ABS --> 
    <item name="android:actionDropDownStyle">@style/MyActionBarSpinnerStyle</item> 
</style> 

Ve MyActionBarSpinnerStyle gibi bir şey:

<style name="MyActionBarSpinnerStyle" parent="@style/MyDropDownActionBarStyle"> 
    <item name="android:background">@drawable/my_custom_state_list_drawable</item> 
</style> 
Eğer ABS kullanırsanız Widget.Sherlock.Light.Spinner.DropDown.ActionBar gibi bir şey olmalı yerine MyDropDownActionBarStyle ait

veya Widget.Holo.Light.Spinner.DropDown.ActionBar eğer yalnızca yerel ActionBar'ı hedefle.

İlgili konular