如何有效地更改AppCompatCheckBox颜色?

时间:2016-05-27 16:41:31

标签: java android android-support-library appcompat-v7-r23

我在我的AppCompatCheckBox中发现了一个非常奇怪的行为,已经搜索了它的修复但是没找到,这就是我决定在这里问的原因。

我试图以编程方式更改已检查的AppCompatCheckBox颜色(因为我的应用程序的颜色方案改变了,我无法使用XML属性为CheckBox着色),所以我使用了这种方法:

chkTos = (AppCompatCheckBox) findViewById(R.id.checkboxTos);

ColorStateList colorStateList = new ColorStateList(
            new int[][]{
                    new int[]{-android.R.attr.state_checked},
                    new int[]{android.R.attr.state_checked},
            },
            new int[]{

                    Color.DKGRAY,
                    Color.RED,
            }
    );
chkTos.setSupportButtonTintList(colorStateList);

它工作,检查的颜色现在是红色,但动画现在非常慢。表现太可怕了!我该如何解决这个问题?

你有过这样的经历吗?我想告诉你它在行动,将尝试创建它的GIF!也许这是支持库上的一个错误?

一些参考文献:

Change Circle color of radio button- Android

How to change checkbox checked color programmatically

1 个答案:

答案 0 :(得分:0)

对于仍在努力解决此问题的任何人,您必须将SupportButtonTintList设置为所需的ButtonTintList,而不是设置colorStateList。所以代码就像:

chkTos.setButtonTintList(colorStateList);