我在Xamarin Android项目中有一个布局。我想确认该资源确实存在于构建中。
我尝试了以下代码:
var layout = Resources.GetLayout(Resource.Layout.my_xml_resource);
var xml = layout.ReadInnerXml();
System.Diagnostics.Debug.WriteLine(xml);
GetLayout
调用不会抛出NotFoundException
,因此推测资源存在。但是,布局对象经检查后显示None
。
xml
变量为空,并且所有读取xml的尝试均未成功。
我在这个兔子洞里,因为我试图将布局与Inflate
一起使用。不幸的是,inflate的输出没有我期望的子控件,我怀疑资源布局为空。
nativeView = inflater.Inflate(Resource.Layout.my_xml_resource, view, true);
我想念的是什么?还有另一种方法来验证资源是否存在?
使用Resources.GetIdentifier(String, String, String) Method
可以验证是否存在Android布局资源Xml。
在C#中,您可以尝试以下代码。如果resId不为0,则资源存在。
int resId = Resources.GetIdentifier("textlayout", "layout", "com.companyname.app1");
textlayout:这是我的项目的布局名称,请注意,它需要小写。
layout:要验证的资源类型。它也需要小写。
com.companyname.app1:PackageName,您可以从AndroidManifest.xml文件中获取。