簡體   English   中英

Android Dark Mode/Light Mode - android微調器下拉彈出背景顏色

[英]Android Dark Mode/Light Mode - android spinner dropdown popup background color

在將 Android 暗模式引入 android 操作系統后,我遇到了一個沖突的問題,在我的應用程序中,我使用以下自定義樣式來制作下拉菜單

在此處輸入圖像描述

在 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。 確保根據您的模式更改顏色。

您可以將 colors.xml 用於日/夜主題。

colors.xml
colors.xml(night)

並且請在您的 AndroidManifest.xml Activity 中添加 android:configChanges="uiMode"

<activity
    android:name="MainActivity"
    android:configChanges="uiMode" />  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM