2016-09-21 4 views
0

Я создал ViewCellRenderer, где у меня есть две метки и вертикальный вид, который представляет строку (полная высота, ширина 2dp). Теперь настройка текста прекрасна, но когда я пытаюсь изменить цвет фона в представлении, рендеринг отображает его как прозрачный. Вот мой код:Пользовательский рендерер в Android не позволяет изменять цвет фона в представлении

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 цвет шестнадцатеричный, что я хочу, чтобы применить динамически для каждой ячейки. Я отлаживал его, цвет правильно строился и применялся к представлению, но когда я продолжаю выполнение, в пользовательском интерфейсе нет цветовой полосы. Я отлаживал представление иерархии, и я вижу, что полоса имеет ширину и высоту, но не имеет никакого цвета фона. Но нет никаких проблем для прошивкой:

enter image description here enter image description here

Каждый знает, как я могу это исправить? Большое спасибо!

+0

Вы пробовали Android.Graphics.Color stripeColor = новый Android.Graphics.Color(); colorStripe.SetBackgroundColor (stripeColor.ToAndroid()); –

+0

Нет такого метода ToAndroid() –

+0

stripeColor - это строка, а не тип цвета. Я получаю шестнадцатеричное значение от сервера в виде строки, а затем вычисляю значения RGB на основе этого шестнадцатеричного кода. –

ответ

0

Я установил его. Вместо того чтобы создать переменную цвета и применяя строку цвета к ней, я использовал функцию ParseColor Xamarin в:

colorStripe.SetBackgroundColor (Android.Graphics.Color.ParseColor (x.StripeColor)); 
Смежные вопросы