Выбрать макет вручную?

В моем XML, у меня есть маленький, нормальный, большой и набор макетов по умолчанию.

Я не хочу, чтобы устройство автоматически выбирало макет, но я хочу выбрать базу по разрешению ширины устройства.

Это мое manifest.xml

 <supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" >
</supports-screens>

Как это установить?

1 ответ

Решение

В вашем проекте res/ каталог, вы должны включить макеты папок для каждого размера экрана, который вы поддерживаете. Возможные имена папок будут layout-small, layout-normal, layout-large а также layout-xlarge, Если вы опустите одну или несколько папок с размером экрана, Android будет использовать следующую ближайшую папку, равную или меньшую этому размеру, и также рекомендуется иметь папку "по умолчанию", которая называется просто layout которые могут быть использованы в качестве всеобъемлющего (рекомендуем использовать это вместо layout-small). Внутри каждой папки вы обычно размещаете XML-файл макета, соответствующий этому размеру экрана, и все файлы будут иметь одно и то же имя (например, layout-normal/my_layout.xml, layout-large/my_layout.xml, так далее.).

Изнутри вашего Activity"s onCreate() метод, который вы бы назвали setContentView(R.layout.my_layout), который автоматически выберет правильную компоновку из папки, соответствующей размеру экрана устройства.

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

Другие вопросы по тегам