2017-07-14 70 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>