我正在尝试在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
{ }
}
别的!仍然会发生错误。 注释属性行(因此禁用自定义渲染器)或删除类派生可以解决问题并且应用程序启动时没有任何其他错误。
还有其他人遇到过这样的问题吗?关于如何解决它的任何线索?
提前谢谢你。 欢呼声,
微米。
答案 0 :(得分:2)
原因可能是您的MainActivity
继承自FormsAppCompatActivity
而不是FormsApplicationActivity
。您应该可以通过使自定义渲染器从MasterDetailPageRenderer
命名空间继承Xamarin.Forms.Platform.Android.AppCompat
来解决此问题。