当前位置: 首页 > 知识库问答 >
问题:

无法更改颜色按钮所有按钮的正常值

景轶
2023-03-14

我正在尝试使用我的风格中的colorButtonNormal使我的应用程序中的所有按钮都具有默认颜色。

它在API 21及以上版本上运行良好,但在API 21下,它只更改了一些按钮的背景,我不知道出了什么问题。

styles.xml

<resources xmlns:tools="http://schemas.android.com/tools">
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="colorPrimary">@color/btn_login</item>
        <item name="colorPrimaryDark">@color/bg_login</item>
        <item name="colorAccent">@color/btn_login</item>
        <item name="colorButtonNormal">@color/btn_login</item>
    </style>

</resources>

v21/样式。xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:alertDialogTheme">@style/AlertDialogCustom</item>
        <item name="android:colorButtonNormal">@color/btn_login</item>
        <item name="colorPrimary">@color/btn_login</item>
        <item name="colorPrimaryDark">@color/bg_login</item>
        <item name="colorAccent">@color/btn_login</item>
    </style>



    <style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="android:colorPrimary">@color/btn_login</item>
        <item name="android:colorAccent">@color/btn_login</item>
        <item name="colorAccent">@color/btn_login</item>
        <item name="colorPrimary">@color/btn_login</item>
        <item name="colorPrimaryDark">@color/bg_login</item>
    </style>

    <style name="Preference" parent="Theme.AppCompat.Light">
        <item name="android:textColorPrimary">@color/black</item>
        <item name="android:colorPrimary">@color/btn_login</item>
        <item name="android:colorAccent">@color/btn_login</item>
        <item name="android:editTextColor">@color/black</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:alertDialogTheme">@style/AlertDialogCustom</item>
        <item name="colorAccent">@color/btn_login</item>
    </style>



        <style name="EditTextThemeCustom" parent="Theme.AppCompat.Light">
            <!-- Customize your theme here. -->
            <item name="android:editTextColor">@color/black</item>
            <item name="android:textColor">@color/black</item>
            <item name="colorAccent">@color/btn_login</item>
        </style>


</resources>

结果:

Lollipop

奇巧

有什么建议吗?

共有3个答案

百里泓
2023-03-14

我在旧设备中遇到这个问题(

孟成文
2023-03-14

您膨胀的按钮将自动翻译为AppCompatButton

无论您在哪里使用新按钮(上下文),都需要使用新的AppCompatButton(上下文)来应用材质主题颜色。

戚俊健
2023-03-14

添加到您的样式中。xml

<style name="ColoredButton" parent="Widget.AppCompat.Button">
    <item name="colorButtonNormal">@color/btn_login</item>
</style>

然后用

android:theme="@style/ColoredButton"

作为按钮的属性之一

 类似资料:
  • 我正在开发一个基于测验的应用程序。将有1个问题和4个选项(单选按钮)。如果用户选择了任何错误的答案,那么我想将单选按钮颜色变为红色。如何做到这一点?

  • 我在一个HTML页面上有2个按钮组。每组3到4个按钮(使用引导程序的按钮)。我想使用Javascript在没有onclick的情况下更改点击时的颜色按钮。 用户将单击组1中的任何按钮(单击“将颜色改为绿色”时),然后单击组2中的按钮,而不取消选择组1中的按钮。 null null

  • 在我的应用程序中,我使用动作栏和导航抽屉。操作栏中有一个按钮用于打开和关闭导航抽屉。我想把它的颜色改成红色。我该怎么做?

  • 我用的是Android Studio。我需要更改单选按钮的颜色,在将“按钮颜色”值更改为我需要的颜色后,它会在预览中工作,但每当我在设备上启动应用程序时,按钮都是标准的绿色/蓝色。 这是某种设备API级别的问题吗?如果是这样,是否可以更改旧设备的颜色?

  • 如何更改searchview中黑色箭头(后退按钮)的颜色,我已尝试使用以下代码进行自定义 但它不起作用