Какой макет наиболее гибкий? - PullRequest
1 голос
/ 10 декабря 2010

Какой макет лучше всего использовать для поддержки приложения на разных устройствах (размер экрана)?

EDIT

Я не просто говорю об изменении размера макета, очевидно, ОС делает это автоматически. Я говорю о перемещении объектов в моем макете.

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

Ответы [ 4 ]

4 голосов
/ 10 декабря 2010

Нет «лучшего» макета. Почти все типы макетов будут масштабироваться для разных устройств (Android разработан на основе этой концепции), кроме AbsoluteLayout, который все равно не рекомендуется.

LinearLayout лучше всего, если у вас есть только ряд (горизонтальный или вертикальный) содержимого для вставки. Использование таких значений, как dip-значения, fill_parent или wrap_content, автоматически подстраивается под их содержимое или размер экрана.

RelativeLayout, как указал Владимир, лучше всего подходит для макетов, в которых представления располагаются относительно других объектов в макете. Например, TextView, расположенный рядом с кнопкой «Отправить», является распространенным примером.

FrameLayout является своего рода заменой AbsoluteLayout; Вы можете наложить объекты друг на друга, просто указав отступы по краям рамки.

TableLayout - это, как это звучит, макет для дизайна в стиле Table. У вас может быть несколько строк и столбцов, а некоторые столбцы можно растягивать по размеру дисплея, чтобы макет не зависел от размера экрана.

РЕДАКТИРОВАТЬ: Если у вас есть объекты, выходящие за пределы области экрана, попробуйте обернуть ваш корневой макет в <ScrollView>. Это позволит макет с возможностью прокрутки.

, например

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <RelativeLayout
        ..... //and so on
    </RelativeLayout>
</ScrollView>
1 голос
/ 10 декабря 2010

Все макеты являются гибкими с точки зрения размера ... правило: не используйте AbsoluteLayout. Вот и все.

А что касается проблем с репозиционированием ... ну, всегда используйте провалы вместо пикселей, и все готово. Опять же, не используйте AbsoluteLayout, остальные макеты должны нормально работать на любом размере экрана. Иногда вы можете предвидеть эти «исчезающие действия», заключая ваш макет в ScrollView.

0 голосов
/ 10 декабря 2010

LinearLayout, RelativeLayout, FrameLayout являются макетами импорта ....

0 голосов
/ 10 декабря 2010

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

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