Android 自定义微调器在 17 台设备中变黑
Android custom spinner went black in 17- devices
我在 Android 中创建了一个自定义微调器。在 16 或以下看起来像 this in 16+ devices and this。
<Spinner
android:id="@+id/spinner"
style="@style/spinner_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/line1"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
/>
styles.xml
<style name="spinner_style" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:background">@drawable/gradient_spinner</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:popupBackground">#DFFFFFFF</item>
</style>
gradient_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item>
<bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
</item>
</layer-list>
</item>
不明白为什么变黑了??
<solid android:color="#ffffff"/>
在 gradient_spinner.xml 上添加了这个并且有效
在android 16个形状中默认黑色。将黑色替换为任何其他颜色,例如白色。要覆盖颜色,您需要添加以下内容:
<shape>
<solid android:color="@color/white"/>
....
</shape>
结果,在gradient_spinner.xml你会得到如下代码:
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<solid android:color="@color/white"/>
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item>
<bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
</item>
</layer-list>
</item>
对不起我的英语。谢谢
我在 Android 中创建了一个自定义微调器。在 16 或以下看起来像 this in 16+ devices and this。
<Spinner
android:id="@+id/spinner"
style="@style/spinner_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/line1"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
/>
styles.xml
<style name="spinner_style" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:background">@drawable/gradient_spinner</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:popupBackground">#DFFFFFFF</item>
</style>
gradient_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item>
<bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
</item>
</layer-list>
</item>
不明白为什么变黑了??
<solid android:color="#ffffff"/>
在 gradient_spinner.xml 上添加了这个并且有效
在android 16个形状中默认黑色。将黑色替换为任何其他颜色,例如白色。要覆盖颜色,您需要添加以下内容:
<shape>
<solid android:color="@color/white"/>
....
</shape>
结果,在gradient_spinner.xml你会得到如下代码:
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<solid android:color="@color/white"/>
<stroke android:width="1dp" android:color="#000000" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
</shape>
</item>
<item>
<bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
</item>
</layer-list>
</item>
对不起我的英语。谢谢