Как проверить, что Android Layout Resource Xml существует в Xamarin? - PullRequest
0 голосов
/ 11 октября 2019

У меня есть макет в моем проекте 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);

Чего мне не хватает? Есть ли другой способ проверить, существует ли ресурс?

1 Ответ

0 голосов
/ 14 октября 2019

Использование Resources.GetIdentifier(String, String, String) Method может проверить, существует ли Android Layout Resource Xml или нет.

В C # вы можете попробовать код ниже. Если resId не равно 0, ресурс существует.

int resId = Resources.GetIdentifier("textlayout", "layout", "com.companyname.app1");

textlayout : это имя макета моего проекта, обратите внимание, что для него требуется нижний регистр.

layout : тип ресурса, который вы хотите проверить. Также требуется нижний регистр.

com.companyname.app1 : имя_пакета, которое можно получить из файла AndroidManifest.xml. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...