以编程方式更改Android CheckBox框的颜色(支持库)?

ryl*_*exr 10 checkbox android android-support-library

我试图以编程方式将复选框的颜色更改为与主题默认颜色不同的颜色.问题是我做了这样的事情:

checkbox.setSupportButtonTintList(ColorStateList);
Run Code Online (Sandbox Code Playgroud)

它的工作原理,但根据它的类文档,这个方法似乎只能被同一个包(com.android.support)中的类使用.这是我从Android Studio获得的警告:

AppCompatCheckBox.setSupportButtonTintList can only be called from within the same library group (groupId=com.android.support)
Run Code Online (Sandbox Code Playgroud)

是否有标准/正确的方法为所有API级别执行此操作?

ryl*_*exr 21

最后,从其中一位Google员工那里找到了答案:https://code.google.com/p/android/issues/detail? id = 202235.我不对使用是对的:

checkbox.setSupportButtonTintList(ColorStateList);
Run Code Online (Sandbox Code Playgroud)

它似乎是一个私有API.相反,你必须使用:

CompoundButtonCompat.setButtonTintList(checkbox, colorStateList);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!还有一个有用的提示:要以编程方式创建 ColorStateList,您可以使用 `ContextCompat.getColorStateList(context, R.color.my_checkbox_selector)` (2认同)