gpt4 book ai didi

android - 使用 Theme.MaterialComponents.DayNight.NoActionBar 时,深色主题颜色上的溢出菜单错误

转载 作者:行者123 更新时间:2023-12-05 00:20:00 24 4
gpt4 key购买 nike

我正在使用 MaterialDesign website 中描述的指南中的实现
无论我尝试什么,菜单文本颜色和 native 菜单图标(如展开菜单图标)都是错误的颜色,特别是它们似乎是浅色模式颜色。我希望它们是深色主题文本(深色表面上的白色文本和 native 菜单图标)。
其他方面都很好,例如工具栏、卡片 View 、文本和其他表面。
据我了解,这应该无需任何代码修改即可工作,并且当出现在库存溢出菜单的“表面”上时,文本颜色应自动更改为浅色。
我不相信我会在任何地方覆盖它。我所知道的项目中没有其他样式。
例子:
screenshot
我的样式.xml:

<style name="MyTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorSecondary">@color/colorSecondary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlActivated">@color/colorControlActivated</item>
</style>
构建.gradle:
android {
compileSdkVersion 29

defaultConfig {
applicationId "poop"
minSdkVersion 17
targetSdkVersion 29
versionCode 24
versionName "3.2.2"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
我已经尝试了一些与 stackoverflow 上的菜单问题相关的主题覆盖建议。大多数不修复文本,它仍然是黑色的。
有些确实修复了文本,但其他项目(如用于展开子菜单的 V 形)在深色表面上保持黑色。

最佳答案

您可以覆盖 popupTheme (用于弹出菜单),以便它使用 colorOnSurface为文本颜色。

<style name="ThemeOverlay.MyApp.Toolbar" parent="@style/ThemeOverlay.MaterialComponents.Toolbar">
<item name="popupTheme">@style/ThemeOverlay.MyApp.PopupTheme</item>
</style>

<style name="ThemeOverlay.MyApp.PopupTheme" parent="">
<item name="android:textColorPrimary">?attr/colorOnSurface</item>
</style>
如果您使用 MaterialToolbar ,您可以在您的应用程序中以默认样式应用此覆盖(因为 MaterialToolbar 支持 materialThemeOverlay ):
<style name="MyTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
...
<item name="colorSurface">@color/white</item>
<item name="colorOnSurface">@color/black</item>
<item name="toolbarStyle">@style/Widget.MyApp.Toolbar</item>
</style>

<style name="Widget.MyApp.Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
<item name="materialThemeOverlay">@style/ThemeOverlay.MyApp.Toolbar</item>
</style>
如果您使用 Toolbar ,您必须在 Toolbar 的布局中设置它用 android:theme=“@style/ThemeOverlay.MyApp.Toolbar” 声明本身.
values-night/themes.xml您必须设置 colorSurfacecolorOnSurface在暗模式下您想要的颜色。我建议重组你的主题以避免在值相同的地方重复定义。
  • 格纹示例:https://github.com/android/plaid/pull/820/
  • 重组主题:https://ataulm.com/2020/04/30/refactoring-themes-with-style.html
  • 关于android - 使用 Theme.MaterialComponents.DayNight.NoActionBar 时,深色主题颜色上的溢出菜单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61651526/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com