java - Android Dark Mode/Light Mode - android微调器下拉弹出背景颜色
问题描述
在将 Android 暗模式引入 android os 后,我遇到了一个冲突的问题,在我的应用程序中,我使用以下自定义样式来制作下拉菜单
在 app_text_box_design.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 暗模式中定义暗背景颜色,但是,如果用户更改为亮模式,它会与设计冲突,所以我想知道我们如何为这两种模式进行设置?
解决方案
这个问题与样式有关。您必须在活动样式中声明一个特定属性,以覆盖 MaterialComponents 中的默认白色。
假设您的下拉菜单是由 res 文件夹下的菜单创建的,您只需将此属性添加到您正在使用的样式中:
<item name="android:itemBackground">@color/colorExample</item>
请注意,由于您有明暗模式,您可能会有两种不同的样式,一种称为styles.xml,另一种称为styles-night.xml。确保根据您的模式更改颜色。
推荐阅读
- r - 在 group_by 中添加一个因子级别的计数
- android - 微调菜单 - Android
- awk - 使用 sed /awk 格式化列名
- laravel - 在 Laravel 模型类中动态添加访问器方法
- python - pyautogui 脚本在缩放应用程序中不起作用
- javascript - 使用 d3 库生成单色调色板
- java - 在java Swing中绘制,移动形状
- ruby-on-rails - 如何使用 Unicorn、Octopus 和 Postgresql 设置 Rails 模式缓存
- javascript - 如何让 jquery datepicker 无法工作克隆行
- html - 尽管指定了填充,为什么图像元素没有居中?