Intereting Posts

При смене ресурса компоновки с тем же именем просто другой экранный определитель

У меня есть макет, который отличается от портрета и пейзажа; Однако на планшетах (например, на самом деле большой экран, xlarge layout qualifier). Я хочу использовать только портретную версию для обеих ориентаций.

/res/layout/abc.xml

/res/layout-land/abc.xml

/res/layout-xlarge/abc.xml

Поскольку первый и последний макеты идентичны, я думал об использовании псевдонима. Но я не могу понять из документов Android, как ссылаться на спецификацию конкретного макета в моем заявлении …

Идеи?

Solutions Collecting From Web of "При смене ресурса компоновки с тем же именем просто другой экранный определитель"

Я боролся точно! Та же проблема и, наконец, нашли решение, поэтому даже если вопрос довольно старый, может быть, кто-то найдет его полезным

  1. Поместите макет портрета в /res/layout/abc.xml (у вас уже есть)

  2. Поместить ландшафтный макет в /res/layout/abc_land.xml

  3. Создать файл layout.xml с содержимым

     <?xml version="1.0" encoding="utf-8"?> <resources> <item name="abc" type="layout">@layout/abc_land</item> </resources> 
  4. Скопируйте этот файл в свои /res/values-land/ and /res/values-xlarge/ directories

Важно отметить, что ваш файл layout.xml содержит ссылку на улучшенный (ландшафтный) файл abc_land.xml , который также хранится в каталоге layout а также файлы находятся в каталогах values-x , а не layout-x один раз.

Также я попытался поместить в каталог макета два файла abc_land.xml и abc_port.xml и создать на них псевдоним из /res/values-land/ , /res/values-port/ а также /res/values-xlarge/ directories и Похоже, работает, поэтому это также удобное решение сделать в макетах некоторый «заказ»!