Xamarin.Forms MasterDetailPage自定义渲染器

时间:2017-01-05 11:27:23

标签: xamarin.forms custom-renderer

我正在尝试在Xamarin.Forms(v.2.3.3.175)中为MasterDetailPage编写自定义渲染器。我需要调整默认的主宽度,这与其内容相比太大了。

不幸的是,一旦创建了自定义渲染器类,我就会得到“System.NullReferenceException”。我已经清理了一切,但我仍然得到了错误。似乎只是从MasterDetailRenderer派生我的类导致了这个问题。

为了测试,我将自定义渲染器剥离到如下:

[assembly: Xamarin.Forms.ExportRenderer(typeof(Xamarin.Forms.ExMasterDetailPage), typeof(ExMasterDetailRenderer))]
namespace MDPageTest.Droid.Renderers {
    public class ExMasterDetailRenderer : MasterDetailRenderer
    { }
}

别的!仍然会发生错误。 注释属性行(因此禁用自定义渲染器)或删除类派生可以解决问题并且应用程序启动时没有任何其他错误。

还有其他人遇到过这样的问题吗?关于如何解决它的任何线索?

提前谢谢你。 欢呼声,

微米。

1 个答案:

答案 0 :(得分:2)

原因可能是您的MainActivity继承自FormsAppCompatActivity而不是FormsApplicationActivity。您应该可以通过使自定义渲染器从MasterDetailPageRenderer命名空间继承Xamarin.Forms.Platform.Android.AppCompat来解决此问题。