所以,我想将色调应用于AppCompat Checkbox.
棒棒糖一切正常:
android:buttonTint="@color/purple_FF4081"
Run Code Online (Sandbox Code Playgroud)
或者这样:
android:theme="@style/Theme.MyTheme.PurpleAccent"
Run Code Online (Sandbox Code Playgroud)
但设置任何这些参数并不会改变前Lollipop上的任何内容.仅在我colorAccent为应用主题设置时才有效.但我不希望所有小部件都改变它们的外观,只需要一个复选框.如果没有设置彩色抽屉,有没有办法做到这一点?
Dan*_*son 62
快速仅供参考,这已经全部引进的AppCompatActivity和新的支持库,后现改为以供参考(概述这里精美)复选框可以减淡使用themeatttribute并设置colorControlNormal和colorControlActivated:
styles.xml
<style name="MyCheckBox" parent="Theme.AppCompat.Light">
<item name="colorControlNormal">@color/indigo</item>
<item name="colorControlActivated">@color/pink</item>
</style>
Run Code Online (Sandbox Code Playgroud)
layout xml:
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Check Box"
android:theme="@style/MyCheckBox"/>
Run Code Online (Sandbox Code Playgroud)
Anu*_*iya 25
您可以直接在xml中着色.使用boxTint作为框:(从API级别23开始)
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/CHECK_COLOR" />
Run Code Online (Sandbox Code Playgroud)
您还可以使用appCompatCheckbox v7为旧API执行此操作:
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/COLOR_HERE" />
Run Code Online (Sandbox Code Playgroud)
and*_*seb 11
我需要以编程方式进行,经过一段时间的挖掘,我终于找到了这个解决方案(在Kitkat和Marshmallow上测试过),我会发布它,以防它帮助某人:
public static void setAppCompatCheckBoxColors(final AppCompatCheckBox _checkbox, final int _uncheckedColor, final int _checkedColor) {
int[][] states = new int[][]{new int[]{-android.R.attr.state_checked}, new int[]{android.R.attr.state_checked}};
int[] colors = new int[]{_uncheckedColor, _checkedColor};
_checkbox.setSupportButtonTintList(new ColorStateList(states, colors));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22469 次 |
| 最近记录: |