Xamarin Android c# Viewstub 只工作一次,然后获取空指针
Posted
技术标签:
【中文标题】Xamarin Android c# Viewstub 只工作一次,然后获取空指针【英文标题】:Xamarin Android c# Viewstub only works once and then getting null pointer 【发布时间】:2018-11-02 13:29:57 【问题描述】:我正在尝试使用 viewtub 来设置我的视图,它第一次工作正常但是如果我再次调用该方法,我得到一个空指针异常,任何想法为什么会发生这种情况?
这是我的代码,我第一次调用它,它工作正常。
ViewStub stub = FindViewById<ViewStub>(Resource.Id.stub);
stub.LayoutResource = Resource.Layout.overview;
stub.Inflate();
然后当我尝试用不同的布局再次做同样的事情时,我得到一个空指针异常
ViewStub stub = FindViewById<ViewStub>(Resource.Id.stub);
stub.LayoutResource = Resource.Layout.product_view;
stub.Inflate();
【问题讨论】:
【参考方案1】:根据official documentation:
当 ViewStub 可见,或调用 inflate() 时,布局资源会膨胀。然后,ViewStub 将其父级中的自身替换为膨胀的一个或多个视图。
在您致电 stub.Inflate()
后,您的 ViewStub
将替换为 Resource.Layout.overview
。您可以使用FindViewById()
来查看您的overview
,但不能再使用ViewStub
。
【讨论】:
以上是关于Xamarin Android c# Viewstub 只工作一次,然后获取空指针的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 C# 从 Xamarin.iOs 和 Xamarin.Android 连接到 MySql
如何从 C++ 为 Xamarin.Android 创建 C# DLL
gles2 动态壁纸转换为 c# (xamarin) 符合错误“...mono.android.TypeManager 无法应用于