Android中的自定义渲染器不允许更改View的背景颜色

时间:2016-09-21 19:03:13

标签: c# xamarin.android xamarin.forms

我制作了一个ViewCellRenderer,其中有两个标签和一个代表一条线的垂直视图(全高,2dp宽)。现在,设置文本工作正常,但是当我尝试更改视图的背景颜色时,渲染器将其显示为透明。这是我的代码:

Android.Views.View colorStripe = v.FindViewById<Android.Views.View>(Resource.Id.llColorStripe);
Android.Graphics.Color stripeColor = new Android.Graphics.Color();
stripeColor = stripeColor.FromHexString(x.StripeColor);
colorStripe.SetBackgroundColor(stripeColor);

x.StripeColor是我想为每个单元格动态应用的颜色十六进制。我调试了它,颜色正确构建并应用于视图,但是当我继续执行时,UI上没有颜色条纹。我已经调试了层次结构视图,我可以看到条带有宽度和高度,但根本没有背景颜色。但iOS没有问题:

enter image description here enter image description here

任何人都知道如何解决这个问题?非常感谢!

1 个答案:

答案 0 :(得分:0)

我修好了。我没有创建颜色变量并将颜色字符串应用于颜色变量,而是使用了Xamarin的函数ParseColor:

colorStripe.SetBackgroundColor (Android.Graphics.Color.ParseColor (x.StripeColor));