gpt4 book ai didi

android - 将样式更改为 MaterialComponents 后溢出菜单背景颜色消失

转载 作者:行者123 更新时间:2023-11-29 22:40:16 27 4
gpt4 key购买 nike

起初,我的应用使用<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">风格。但我将其更改为 Material Components <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar"> (为了使用标签的 Material 徽章计数)。所以改变后的样式是这样的:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/green</item>
<item name="colorPrimaryDark">@color/green</item>
<item name="colorAccent">@color/green</item>
</style>

更改样式后,溢出菜单背景现在为白色。 (在 Theme.AppCompat.Light.DarkActionBar 之前是绿色背景和白色文本)。但是现在背景是白色的,文字也是白色的。

这是工具栏的 xml:

<androidx.appcompat.widget.Toolbar
android:id="@+id/ev_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ToolbarTheme">
</androidx.appcompat.widget.Toolbar>

和工具栏的主题风格:

<style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:textColorPrimary">@color/white</item>
<item name="android:colorBackground">@color/green</item>
</style>

我尝试设置 <item name="popupMenuStyle">@style/CustomPopup</item>AppTheme

<style name="CustomPopup" parent="@style/Widget.MaterialComponents.PopupMenu">
<item name="android:popupBackground">@color/green</item>
</style>

但仍然没有运气。

我用来测试的设备使用Android 8.0,compileSdkVersiontargetSdkVersion是 28 岁。

感谢您的宝贵时间。

最佳答案

溢出菜单中弹出窗口的背景颜色在应用主题中由属性 actionOverflowMenuStyle 定义。

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="actionOverflowMenuStyle">@style/Widget.MaterialComponents.PopupMenu.Overflow</item>
</style>

1.2.0-alpha02 fixed此值的浅色和深色主题混合。

您还可以使用以下方式自定义弹出窗口:

    <com.google.android.material.appbar.MaterialToolbar
app:popupTheme="@style/AppTheme.PopupOverlay"
../>

与:

  <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<item name="android:popupBackground">@drawable/...</item>
</style>

enter image description here

您还可以使用 Toolbar 中的 android:theme 属性覆盖颜色而不更改 drawable

    <com.google.android.material.appbar.MaterialToolbar
android:theme="@style/MyThemeOverlay_Toolbar"
../>

使用:

  <style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<item name="colorSurface">@color/custom</item>
</style>

enter image description here

关于android - 将样式更改为 MaterialComponents 后溢出菜单背景颜色消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081672/

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