2017-07-14 82 views
1

我在我的佈局中有一個微調,並且想要在API的級別前和後棒棒糖中自定義它的樣式。在android中更改微調主題

我用下面的風格樣式v23.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <style name="SpinnerTheme" parent="AppTheme"> 
     <item name="android:background">@drawable/bg_spinner</item> 
    </style> 

</resources> 

,這是bg_spinner文件:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item> 

    <layer-list> 

     <item> 
      <shape> 
       <gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" /> 

       <stroke android:width="0.33dp" android:color="#0fb1fa" /> 

       <corners android:radius="0dp" /> 

       <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" /> 
      </shape> 
     </item> 

     <item android:right="5dp"> 

      <bitmap android:gravity="center_vertical|right" android:src="@drawable/ic_chevron_down" /> 

     </item> 

    </layer-list> 

</item> 

</selector> 

但是當我運行在API級別23的程序,它返回以下錯誤:

Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class <unknown> 

但是,它在android其他API級別正常工作,如預期。 有人幫我嗎?

在此先感謝

+0

你參考'SpinnerTheme'風格,請張貼代碼? – Euporie

+0

這是上面的第一個代碼! – Mahdi

+1

一切都是正確的。問題必須在你的src屬性中。我使用了android可繪製文件'android:src =「@ drawable/ic_close_light」'並且工作正常。更改src drawable並再次運行。 – SiSa

回答

2

一切是正確的。問題應該在你的src屬性中。我使用了android可繪製文件android:src="@drawable/ic_close_light",並且工作正常。

0

添加在XML標籤微調這一行...

style="@style/SpinnerTheme" 
+0

我已經完成了這一步,並且由於這一行我得到了錯誤。如果我刪除這一行,風格沒有變化,也沒有錯誤。 – Mahdi

+0

parent =「android:style/Widget.ListView.DropDown」在你的樣式中寫下這行代替parent =「AppTheme」 –

+0

謝謝但是同樣的錯誤。我認爲問題出現在bg_spinner文件中。 – Mahdi

0

試試這個:

在styles.xml文件中添加此微調

<style name="spinnerStyle" parent="Base.Widget.AppCompat.Spinner"> 
    <item name="android:background">@drawable/spinner_background</item> 
</style> 

將此行放入您的應用主題

<item name="android:spinnerStyle">@style/spinnerStyle</item> 

創建繪製文件夾spinner_background.xml XML文件

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item> 

    <layer-list> 

     <item> 
      <shape android:shape="rectangle"> 
       <solid android:color="@android:color/transparent"/> 
       <corners android:radius="5dp" /> 
       <stroke 
         android:width="1dp" 
         android:color="your color" 
         /> 
      </shape> 
     </item> 

     <item> 
      <bitmap 
        android:gravity="center_vertical|right" 
        android:src="your dropdown image"/> 
     </item> 

    </layer-list> 

</item> 

</selector>