2015-10-15 134 views
1

我想呈现Xamarin表单应用程序中的复选框。在运行时没有渲染,就我所知,渲染器甚至没有被调用。Xamarin表单自定义渲染器Android不显示

有没有人明白我失踪或做错了?

这是我在窗体类:在Droid的

public class LegalCheckbox : View 
{ 
    public LegalCheckbox() 
    { 

    } 
} 

而且我的自定义渲染器类:

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将从继承而不是View

而且,即使Xamarin.Forms没有Checkbox控制你仍然可以看看他们的“实验室”项目位置:

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

(实际上我可以看到,他们从View继承。 ..)

相关问题