我正在尝试在Xamarin Forms应用中呈现一个复选框。在运行时没有任何渲染,只要我可以告诉渲染器甚至没有被调用。
有没有人理解我遗失或做错了什么?
这是我在Forms中的课程:
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 :(得分:2)
拿起你的代码并用它启动一个新项目。代码看起来运行正常。
我认为可能导致问题的只有瘦是程序集属性的位置。我通常将它们放在与我的渲染器相同的文件中的命名空间声明之上。
我把我在github上创建的东西扔了,也许你可以发现差异。
https://github.com/DavidStrickland0/Xamarin-Forms-Samples/tree/master/RendererDemo
@Thibault D. Xlabs并不是一个糟糕的项目,但它基本上只是开源社区在Xamarin.Forms生命的第一年左右想出的所有代码。它不是真正的“他们的实验室项目”,并考虑到其中有多少被标记为Alpha Beta及其问题页面中的错误数量,最好不要暗示Xamarin公司与它有任何关系。
答案 1 :(得分:0)
我不确定这是否是问题,但如果LegalCheckbox
继承InputView
而不是View
,我会更有意义。
此外,即使Xamarin.Forms
没有Checkbox
控件,您仍然可以在此处查看他们的“实验室”项目:
https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Checkbox-Control
(我实际上可以看到他们继承自View
...)