如何更改 PopupMenu 中 RadioButton 的颜色?
How do I change color of RadioButtons in PopupMenu?
如何在可检查的 PopupMenu
中设置 RadioButton
的颜色。我使用的是 AppCompat 版本。我通过样式成功地设置了背景颜色和文本颜色,但是我不知道如何设置单选按钮的颜色。
这是我目前所拥有的;
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="popupMenuStyle">@style/myPopupMenuStyle</item>
<item name="textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item>
<item name="textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item>
</style>
<style name="myPopupMenuStyle" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@color/accent</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="myPopupMenuTextAppearanceSmall" parent="TextAppearance.AppCompat.Widget.PopupMenu.Small">
<item name="android:textColor">@android:color/white</item>
</style>
<style name="myPopupMenuTextAppearanceLarge" parent="TextAppearance.AppCompat.Widget.PopupMenu.Large">
<item name="android:textColor">@android:color/white</item>
</style>
我尝试了许多其他属性,但没有任何帮助。
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorAccent">@color/radio_button_color</item>
<item name="android:textColorSecondary">@color/radio_button_color2</item>
</style>
来源:
colorAccent
是单选按钮的主要颜色,textColorSecondary
是未选中单选按钮时的辅助颜色。在 AppCompat
中使用 colorAccent
时,请注意没有 android:
前缀,这是在 Lollipop
以下版本中使用它的正确方法
一个简单的方法Android Holo Color
选择主题颜色,打开单选按钮选项,下载 zip 文件,将图片复制到 drwable 并将 XML 文件复制到 drawable 并将它们设置为
here
根据 Galdino 在 的回复,并根据 Pztar 的回复,经过反复试验,我找到了解决方案。我正在使用 AppCompat PopupMenu。
只需将以下内容添加到您的样式文件中(无需向您的主题添加任何内容);
<style name="MyPopupTheme" parent="Widget.AppCompat.PopupMenu">
<item name="colorAccent">@color/primary_dark</item>
<item name="android:popupBackground">@color/accent</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
然后在创建PopupMenu时,使用以下内容;
Context wrapper = new ContextThemeWrapper(getActivity(), R.style.MyPopupTheme);
PopupMenu popup = new PopupMenu(wrapper, bAnchor, Gravity.END | Gravity.RIGHT | Gravity.TOP, 0, R.style.MyPopupTheme);
我不知道为什么,但即使使用ContextThemeWrapper,我仍然必须将样式传递给构造函数。当我们使用 ContextWrapper 时,我们为此 PopupMenu 使用特定的主题,因此我们可以仅覆盖 PopupMenu 的强调色。
所以现在我有一个反转的 PopupMenu,强调色作为背景,白色的文本和按钮,以及原色的选定按钮。
希望这对某人有所帮助,
Lionscribe
如何在可检查的 PopupMenu
中设置 RadioButton
的颜色。我使用的是 AppCompat 版本。我通过样式成功地设置了背景颜色和文本颜色,但是我不知道如何设置单选按钮的颜色。
这是我目前所拥有的;
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="popupMenuStyle">@style/myPopupMenuStyle</item>
<item name="textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item>
<item name="textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item>
</style>
<style name="myPopupMenuStyle" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@color/accent</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="myPopupMenuTextAppearanceSmall" parent="TextAppearance.AppCompat.Widget.PopupMenu.Small">
<item name="android:textColor">@android:color/white</item>
</style>
<style name="myPopupMenuTextAppearanceLarge" parent="TextAppearance.AppCompat.Widget.PopupMenu.Large">
<item name="android:textColor">@android:color/white</item>
</style>
我尝试了许多其他属性,但没有任何帮助。
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorAccent">@color/radio_button_color</item>
<item name="android:textColorSecondary">@color/radio_button_color2</item>
</style>
来源:
colorAccent
是单选按钮的主要颜色,textColorSecondary
是未选中单选按钮时的辅助颜色。在 AppCompat
中使用 colorAccent
时,请注意没有 android:
前缀,这是在 Lollipop
一个简单的方法Android Holo Color 选择主题颜色,打开单选按钮选项,下载 zip 文件,将图片复制到 drwable 并将 XML 文件复制到 drawable 并将它们设置为
here
根据 Galdino 在 的回复,并根据 Pztar 的回复,经过反复试验,我找到了解决方案。我正在使用 AppCompat PopupMenu。
只需将以下内容添加到您的样式文件中(无需向您的主题添加任何内容);
<style name="MyPopupTheme" parent="Widget.AppCompat.PopupMenu">
<item name="colorAccent">@color/primary_dark</item>
<item name="android:popupBackground">@color/accent</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
然后在创建PopupMenu时,使用以下内容;
Context wrapper = new ContextThemeWrapper(getActivity(), R.style.MyPopupTheme);
PopupMenu popup = new PopupMenu(wrapper, bAnchor, Gravity.END | Gravity.RIGHT | Gravity.TOP, 0, R.style.MyPopupTheme);
我不知道为什么,但即使使用ContextThemeWrapper,我仍然必须将样式传递给构造函数。当我们使用 ContextWrapper 时,我们为此 PopupMenu 使用特定的主题,因此我们可以仅覆盖 PopupMenu 的强调色。 所以现在我有一个反转的 PopupMenu,强调色作为背景,白色的文本和按钮,以及原色的选定按钮。
希望这对某人有所帮助,
Lionscribe