Xamarin.Forms MasterDetailPage 自定义渲染器

Posted

技术标签:

【中文标题】Xamarin.Forms MasterDetailPage 自定义渲染器【英文标题】:Xamarin.Forms MasterDetailPage custom renderer 【发布时间】:2017-01-05 11:27:22 【问题描述】:

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

【问题讨论】:

我怀疑你会在 Xamarin.Forms 命名空间中找到 ExMasterDetailPage。 ExportRenderer 参数中的类型是否正确? 【参考方案1】:

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

【讨论】:

以上是关于Xamarin.Forms MasterDetailPage 自定义渲染器的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 手势密码实现

Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源

Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception

如果调用方未使用 Xamarin.Forms,Xamarin 依赖项服务能否正常工作?