如何阻止暗模式弄乱我的应用程序的外观?

How can I stop dark mode from messing up how my app looks?

我是一名学生,正在尝试使用 android studio 学习应用程序开发。对于我的第一个项目,我只是构建一个基本的计算器应用程序。我偶然发现了一个我无法解决的问题,也没有找到有用的 post。当我在虚拟设备上开启暗模式时会发生这种情况。这里有 2 张图片显示了发生的情况。

How it looks with dark mode

How it is supposed to look

我的 activity_main.xml 由一些具有相同样式的按钮和一个 TextView 组成。 我没有动过所有其他文件。我喜欢一些关于如何解决这个问题的建议。感谢阅读!

您很可能在 themes.xml 文件中使用以下默认 DayNight 主题 (values/themes/themes.xml)

<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

如果您不希望夜间模式发生变化,您可以将其改为使用浅色主题

<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light.DarkActionBar">

并删除 themes.xml (night) 文件(如果存在)。关于这些选项有一些额外的信息 here

有两个主题:night 和 not night 签入 IDE Design 选项卡,您可以在这两个选项卡中查看它的外观,单击窗格中显示设计的圆圈,它显示 Not Night 和 Night 无论您是什么主题使用会因为这两种模式影响,默认IDE不显示night

要在两种模式下显示相同的屏幕,您需要更改一些设置,例如在您的 activity_main.xml 中,在根布局中将背景更改为 @color/white 并查看自您的按钮后应该解决的问题颜色很深...需要相应地更改文本占位符颜色

<LinearLayout
background=@color/white


other layout etc to follow