2017-02-23 2 views
0

Должен ли я предоставить весь новый ресурс при использовании квалификатора ресурсов для папки в Android?Должен ли я предоставить весь новый ресурс при использовании квалификатора ресурсов для папки в Android?

У меня есть (первоначально) Папка:

layout 

который содержит сказать layout1.xml и layout2.xml.

Затем я добавил папку:

layout-h529dp 

Потому что я хочу новую версию layout1.xml, хотя я не хочу новую версию из layout2.xml. Тогда мой вопрос: мне действительно нужно предоставить совершенно новый полный набор макетов, если я добавлю новую папку с квалификаторами ресурсов? Я бы хотел избежать дублирования кода xml. Если я удалю layout2.xml из папки layout-h529dp, тогда приложение, похоже, разбилось, потому что оно не может найти layout2.xml с оригинальной папки layout.

ответ

2

Нет вы не должны поставить все RESSOURCES каждый раз, когда вы создаете новая папка с квалификатором. Это было бы очень неприятно.

Когда вы создаете папку layout1.xml в папке layout-h529dp, она сообщит системе использовать этот layout1.xml, когда используется устройство с h529dp. Но если вы не предоставили второй layout2.xml, не беспокойтесь, система по умолчанию будет использовать первый макет внутренней папки.

+0

ОК, я понял, что я сделал не так. Я удалил layout2.xml из макета папки, а не папки layout-h529dp! – JohnyTex

1

Всегда указывайте все макеты по умолчанию. Если вы хотите предоставить другой макет, основанный на конкретной конфигурации устройства, вы затем определяете папку с этим определителем. Когда ваше приложение запускается на устройстве, если оно соответствует требованиям для этого квалификатора, он будет выбирать макеты из папки. Смотрите следующий пример:

раскладка> layout1.xml, layout2.xml

макета h529dp> layout1.xml