1

我正在尝试为 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
    { }
}

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

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

先感谢您。干杯,

M。

4

1 回答 1

2

造成这种情况的原因可能是您MainActivity继承自FormsAppCompatActivity而不是FormsApplicationActivity. 您应该能够通过使您的自定义渲染器MasterDetailPageRendererXamarin.Forms.Platform.Android.AppCompat命名空间继承来解决此问题。

于 2017-01-05T15:24:06.090 回答