2015-10-15 3 views
1

Я пытаюсь отобразить флажок в приложении Xamarin Forms. Во время выполнения ничего не отображается, насколько я могу судить, рендеринг даже не вызван.Xamarin Forms Custom Renderer для Android не отображается

Кто-нибудь понимает, что мне не хватает или что-то неправильно?

Вот мой класс в формах:

public class LegalCheckbox : View 
{ 
    public LegalCheckbox() 
    { 

    } 
} 

И мой пользовательский класс визуализатор в Droid:

public class CheckBoxRenderer : ViewRenderer<LegalCheckbox, CheckBox> 
{ 
    protected override void OnElementChanged (ElementChangedEventArgs<LegalCheckbox> e) 
    { 
     base.OnElementChanged (e); 
     CheckBox control = new Android.Widget.CheckBox(this.Context); 
     control.Checked = false; 
     control.Text = "I agree to terms"; 
     control.SetTextColor (Android.Graphics.Color.Rgb (60, 60, 60)); 
     this.SetNativeControl(control); 
    } 
} 

Наряду с директивой Ассамблеи:

[assembly: ExportRenderer(typeof(demo.LegalCheckbox), typeof(demo.Droid.CheckBoxRenderer))] 
+0

Вывод пустой конструктор имеет значение? – Jason

ответ

2

Взял ваш код и запустил с ним новый проект. Код работает нормально.

Только тонкий, я могу думать, что это может вызвать у вас проблему - это местоположение вашего атрибута сборки. Обычно я размещаю их над объявлением пространства имен в том же файле, что и мой рендерер.

Я выбросил то, что я создал на моем github, возможно, вы можете определить разницу.

https://github.com/DavidStrickland0/Xamarin-Forms-Samples/tree/master/RendererDemo

@Thibault D. Xlabs не плохой проект, но его в основном только все кодируют с открытым исходным кодом сообщество придумало в течение первого года или около Xamarin.Forms жизни. На самом деле это не «проекты своих лабораторий», и учитывая, что в значительной степени это связано с Alpha Beta и количеством ошибок на их страницах проблем, вероятно, лучше не подразумевать, что компания Xamarin имеет к этому какое-то отношение.

+0

Оказалось, что код работал нормально .. :) В эмуляторе я запускал его, это почему-то не отображалось. Я тестировал его на нескольких устройствах, и это выглядело отлично. – nassan

0

Я не уверен, если это проблема, но для меня было бы больше смысла, если бы ваш LegalCheckbox наследовал бы от InputView, а не View.

Кроме того, даже если Xamarin.Forms не имеет Checkbox контроля вы можете взглянуть на их проект «Лаборатория» здесь:

https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Checkbox-Control

(И я на самом деле можно увидеть, что они наследуют от View. ..)

Смежные вопросы