Android 的 Xamarin Forms 自定义渲染器未显示
Xamarin Forms Custom Renderer for Android not displaying
我正在尝试在 Xamarin Forms 应用程序中呈现一个复选框。据我所知,渲染器甚至没有被调用,在运行时没有渲染任何东西。
有人知道我遗漏了什么或做错了什么吗?
这是我的 class 表单:
public class LegalCheckbox : View
{
public LegalCheckbox ()
{
}
}
还有我在 Droid 中的自定义渲染器 class:
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))]
我不确定这是否是问题所在,但如果您的 LegalCheckbox
继承自 InputView
而不是 View
对我来说会更有意义。
此外,即使 Xamarin.Forms
没有 Checkbox
控件,您仍然可以在此处查看他们的 "Labs" 项目:
https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Checkbox-Control
(我实际上可以看到它们继承自 View
...)
获取您的代码并用它启动一个新项目。代码似乎运行良好。
我认为唯一可能导致您出现问题的是程序集属性的位置。我通常将它们放在与我的渲染器相同的文件中的命名空间声明之上。
我把我创建的东西扔到我的 github 上,也许你能看出区别。
https://github.com/DavidStrickland0/Xamarin-Forms-Samples/tree/master/RendererDemo
@Thibault D。
Xlabs 不是一个糟糕的项目,但它基本上只是开源社区在 Xamarin.Forms 生命的第一年左右提出的所有代码。它不是真的 "Their Labs projects",考虑到其中有多少标有 Alpha Beta 以及问题页面中的错误数量,最好不要暗示 Xamarin 公司与它有任何关系。
我正在尝试在 Xamarin Forms 应用程序中呈现一个复选框。据我所知,渲染器甚至没有被调用,在运行时没有渲染任何东西。
有人知道我遗漏了什么或做错了什么吗?
这是我的 class 表单:
public class LegalCheckbox : View
{
public LegalCheckbox ()
{
}
}
还有我在 Droid 中的自定义渲染器 class:
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))]
我不确定这是否是问题所在,但如果您的 LegalCheckbox
继承自 InputView
而不是 View
对我来说会更有意义。
此外,即使 Xamarin.Forms
没有 Checkbox
控件,您仍然可以在此处查看他们的 "Labs" 项目:
https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Checkbox-Control
(我实际上可以看到它们继承自 View
...)
获取您的代码并用它启动一个新项目。代码似乎运行良好。
我认为唯一可能导致您出现问题的是程序集属性的位置。我通常将它们放在与我的渲染器相同的文件中的命名空间声明之上。
我把我创建的东西扔到我的 github 上,也许你能看出区别。
https://github.com/DavidStrickland0/Xamarin-Forms-Samples/tree/master/RendererDemo
@Thibault D。 Xlabs 不是一个糟糕的项目,但它基本上只是开源社区在 Xamarin.Forms 生命的第一年左右提出的所有代码。它不是真的 "Their Labs projects",考虑到其中有多少标有 Alpha Beta 以及问题页面中的错误数量,最好不要暗示 Xamarin 公司与它有任何关系。