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 Native 有啥区别? [关闭]
如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色
Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源
Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception