我为复选框控件编写了一个Android自定义渲染器。
我设置了复选框禁用的颜色,如此
Control.ButtonTintList = ColorStateList.ValueOf(element.DisabledColor.ToAndroid());
其中Control是Android.Widget.CheckBox
这在Lollipop之前不起作用,我收到错误
CheckboxRenderer.SetDisabledColor(Incident.UserControls.Checkbox element)Java.Lang.LinkageError:没有方法 名称= setButtonTintList' signature ='(Landroid / content / res / ColorStateList;)类中的V' Landroid /插件/ CompoundButton;没办法 名称= setButtonTintList' signature ='(Landroid / content / res / ColorStateList;)类中的V' Landroid /插件/ CompoundButton;
我发现有人提到使用DrawableCompat来做这件事,但无法弄清楚如何在Xamarin / C#中做到这一点
有什么想法吗?
答案 0 :(得分:1)
使用Android.Support.V7.Widget.AppCompactCheckbox代替你的基础Android.Widget.Checkbox可能会有所作为。
也可以在运行时更改颜色:
ViewCompat.SetBackgroundTintList(_YourView , ColorStateList.ValueOf(Color.ParseColor(Resources.GetString(Resource.Color.blueLine))));
实际上,棒棒糖之前没有工作的问题是Android KitKat已经过时,下面的其他版本也是如此,所以要获得Android新功能,你需要使用Appcompact库来实现向后兼容。 / p>
无论如何,古德勒克!快乐的编码