更改弹出菜单文本颜色

时间:2021-04-06 15:54:56

标签: android android-layout

我有一个带有自定义布局的对话框,它有一个 EditText,粘贴文本的弹出菜单有一个白色背景(因为我改变了它)和白色文本。我想更改文本的颜色,但找不到更改它的 XML 属性。

弹出菜单的显示方式

Appearance of the popup menu

主题

<style name="Theme.Notes" parent="Theme.MaterialComponents.DayNight">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryVariant">@color/colorPrimaryDark</item>
    <item name="colorOnPrimary">@color/colorOnPrimary</item>

    <item name="colorSecondary">@color/colorSecondary</item>
    <item name="colorOnSecondary">@color/colorOnSecondary</item>

    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>

    <item name="android:textColor">?attr/colorOnPrimary</item>
    <item name="android:textColorHint">@color/colorOnPrimaryDark</item>

    <item name="backgroundColor">@color/background</item>
    <item name="colorSurface">@color/surface</item>
    <item name="colorOnSurface">@color/onSurface</item>
    <item name="alertDialogTheme">@style/NoteCreation.Dialog</item>
</style>

<style name="NoteCreation.Dialog" parent="Theme.MaterialComponents.Dialog.MinWidth">
    <item name="colorAccent">@color/colorPrimaryDark</item>
    <item name="textColorAlertDialogListItem">@color/onSurface</item>
    <item name="android:textColor">@color/onSurface</item>
    <item name="android:textColorSecondary">@color/onSurface</item>
    <item name="android:background">@color/surface</item>
    <item name="buttonBarNegativeButtonStyle">@style/NoteCreation.Dialog.Button</item>
    <item name="buttonBarPositiveButtonStyle">@style/NoteCreation.Dialog.Button</item>
</style>

<style name="NoteCreation.Dialog.Button" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:textColor">@color/colorPrimary</item>
</style>

2 个答案:

答案 0 :(得分:1)

这种方式应该可行。您使用 Popup Window,这就是定义属性的方法:

<style name="Theme.Notes" parent="Theme.MaterialComponents.DayNight">
    <item name="android:popupMenuStyle">@style/PopupMenu</item>
    <item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item>
    <item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item>
</style>

<style name="PopupMenu" parent="@android:style/Widget.MaterialComponents.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
    <item name="android:textColor">#FF01F0</item>
    <item name="android:textSize">12sp</item>
</style>

<style name="myPopupMenuTextAppearanceSmall" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small">
    <item name="android:textColor">#545656</item>
    <item name="android:textSize">15sp</item>
</style>

<style name="myPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large">
    <item name="android:textColor">#545656</item>
    <item name="android:textSize">25sp</item>    
</style>

答案 1 :(得分:0)

问题是我通过使用 Theme.MaterialComponents.Dialog.MinWidth 作为对话框父级来使用深色主题对话框,我认为如果我使用深色模式主题就可以了,但我使用的是 Theme .MaterialComponents.DayNight 为应用程序。我只需要将对话框父级更改为 Theme.MaterialComponents.DayNight.Dialog.MinWidth。

相关问题