设置Android Tint Color Pre Lollipop

时间:2017-11-30 04:14:27

标签: xamarin.forms xamarin.android

我为复选框控件编写了一个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#中做到这一点

有什么想法吗?

1 个答案:

答案 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>

无论如何,古德勒克!快乐的编码