如何在应用程序中仅使用灯光模式?安卓工作室

Dio*_*mao 8 android android-layout

我正在开发一个程序,但由于我的手机处于深色主题,因此某些文本视图有白色字母,并且由于放置在其上的颜色而不会出现。

但是当我将手机切换到轻量级主题时,textView全部出现。

我想知道是否可以在 Android Studio 中禁用深色主题并仅使用浅色主题,即使手机设置为深色主题也是如此。

浅色主题

黑暗主题

Ali*_*waz 15

只需将此行放在启动器活动中 setContentView() 之前

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
Run Code Online (Sandbox Code Playgroud)


gtx*_*eme 9

如果您不想在应用程序中正确实现深色主题(A10 之后出现在整个操作系统中),这是一种短期解决方案

设置android:textColor=@android:attr/textColorPrimary根据浅色或深色主题自动选择文本颜色

另外,既然您询问如何防止当 A10 及以上设备打开系统范围的黑暗模式时将应用程序切换到黑暗模式的默认行为,那么

您可以使您的Activity主题成为 的后代Theme.MaterialComponents.Light或类似的AppCompat变体。目前所有应用程序都使用Theme.MaterialComponents.DayNight它提供如上所述的默认行为

如果您决定为您的应用程序实现系统范围的暗模式,这相当简单,您可以在此处阅读相关内容。大多数小部件已经支持深色模式,只是您必须为自己的背景等进行操作