如何验证Xamarin中是否存在Android布局资源Xml?

问题描述 投票:0回答:1

我在Xamarin Android项目中有一个布局。我想确认该资源确实存在于构建中。

我尝试了以下代码:

var layout = Resources.GetLayout(Resource.Layout.my_xml_resource);
var xml = layout.ReadInnerXml();
System.Diagnostics.Debug.WriteLine(xml);

GetLayout调用不会抛出NotFoundException,因此推测资源存在。但是,布局对象经检查后显示None

enter image description here

xml变量为空,并且所有读取xml的尝试均未成功。

我在这个兔子洞里,因为我试图将布局与Inflate一起使用。不幸的是,inflate的输出没有我期望的子控件,我怀疑资源布局为空。

nativeView = inflater.Inflate(Resource.Layout.my_xml_resource, view, true);

我想念的是什么?还有另一种方法来验证资源是否存在?

xamarin xamarin.android
1个回答
0
投票

使用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文件中获取。enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.