Будет ли при включении макета Android выбирать между макетами hdpi/mdpi/ldpi и полными макетами?

Предположим, у меня есть макет в основной папке ресурсов макета, не относящейся к DPI, и этот макет выполняет <include> вспомогательного макета, который существует в обеих папках hdpi/mdpi/ldpi. Могу ли я ожидать, что окончательный расширенный макет будет объединять вложенный макет h/m/l-dpi в зависимости от DPI устройства, как и для «полных» макетов?

Спасибо!


person Cumbayah    schedule 14.11.2012    source источник
comment
вы уже пробовали это на эмуляторе? :D   -  person David T.    schedule 15.11.2012
comment
Почему у вас разные макеты для плотности экрана?   -  person CommonsWare    schedule 15.11.2012
comment
Вы действительно имеете в виду макеты?   -  person Lokesh Mehra    schedule 19.11.2012
comment
@LokeshMehra Да, я имею в виду макеты. У меня есть раздел пользовательского интерфейса, который нуждается в специальном макете для низкого разрешения, тогда как все остальное в порядке. Мое предположение заключалось в том, будет ли механизм включения жизнеспособным подходом для выбора правильного фрагмента, специфичного для DPI, для включения. С тех пор я подтвердил, что это, похоже, работает, и отвечу на свой собственный пост с подробностями.   -  person Cumbayah    schedule 19.11.2012


Ответы (1)


Принимая во внимание, что во время поста у меня не было возможности проверить предложение поста, с тех пор у меня была возможность сделать это, и, таким образом, я отвечу на свой вопрос, поскольку никто другой этого не сделал.

Да, следующий сценарий работает должным образом (проверено на уровне API 8):

макет/main.xml:

... <include layout="@layout/included"/> ...

макет/included.xml:

<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="GENERIC included fragment"/>
</merge>

макет-ldpi/included.xml:

<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LOW-DPI included fragment"/>
</merge>

Запуск приложения, скажем, на устройстве QVGA отображает представление, в котором включенная часть находится из каталога LDPI по желанию, тогда как устройство без LDPI захватывает часть по умолчанию из каталога макета.

person Cumbayah    schedule 19.11.2012