在android操作系统引入android暗模式后,我遇到了一个矛盾的问题,在我的应用程序中,我使用以下自定义样式来创建下拉菜单
应用内文本框设计.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item>
<shape>
<solid android:color="@color/colorPrimaryAppBg" />
<corners android:radius="3dp" />
<stroke android:width="1px" android:color="@color/colorPrimaryBorder" />
</shape>
</item>
<item android:width="30dp" android:gravity="right">
<bitmap android:gravity="center_vertical|right" android:src="@drawable/baseline_arrow_drop_down_white_24" />
</item>
</layer-list>
</item>
</selector>
在选择器中,我使用它如下
<Spinner
android:id="@+id/spIam"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/app_text_box_design"
android:padding="10dp" />
如果在android黑暗模式下定义一个黑暗的背景颜色,那么在黑暗模式下,它工作得很好,但是,如果用户更改为光明模式,它会与设计冲突,所以我想知道我们如何为这两种模式做设置?
1条答案
按热度按时间iovurdzv1#
这个问题与风格有关。您必须在活动样式中声明一个特定属性,以覆盖materialcomponents的默认白色。
假设您的下拉菜单是由res folder下的菜单创建的,您只需将此属性添加到您正在使用的样式中:
请注意,由于您使用的是明暗模式,因此可能有两种不同的样式,一种称为styles.xml,另一种称为styles-night.xml。一定要根据你的模式改变颜色。