2015-10-04 4 views
0

Как я узнал о фрагментах и ​​кодировке Android в целом, мне было интересно, почему официальная документация предполагает использование XML для фрагментов в первую очередь? Когда вы знаете, что ваш фрагмент не будет удален или изменен во время выполнения, XML в порядке. Однако, что точка попадания в эту практику, если, и я цитирую в Intro to Fragments Documentation здесь:Какой смысл использовать XML для фрагментов?

«Для того, чтобы создать динамичный и мульти-панели пользовательского интерфейса на Android»

Что такое точка когда-либо использующая XML над построением программно? Должен ли я тратить время на изучение статического способа создания компонента, который призван сделать ваше приложение более динамичным?

Благодарим за понимание!

ответ

3

По той же причине вы использовали бы XML с действиями. Фрагменты похожи на вложенные действия, и они позволяют вам разбить свой интерфейс на несколько независимых компонентов (которые могут или не могут взаимодействовать друг с другом). Каждый фрагмент управляет собственным макетом. Предпочитайте использовать XML для динамического создания ваших представлений, когда это возможно, как с действиями, так и с фрагментами. Динамический характер фрагментов заключается в том, что вы можете заменить один фрагмент на другой, когда захотите, и вы можете повторно использовать фрагменты даже в разных действиях, но каждый фрагмент имеет в основном предопределенный макет, поэтому вы хотите использовать XML.

Когда они говорят динамически в учебнике, они не означают только код. Они имеют в виду и дизайн. Например, посмотрите на эту цифру из учебника:

enter image description here

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

+0

Я считаю, что OP интересовался использованием тега , не раздувающего компоновку в onCreateView фрагмента. –

+0

Hi Eugen. Лучше всего создать каталог для разных размеров и типов экрана (см. Http://developer.android.com/guide/practices/screens_support.html) и упорядочить фрагменты в соответствии с различными типами экрана и ориентацией. Вы по-прежнему используете в XML вместо замены их в Java-коде. В коде вы можете проверить текущий размер экрана, плотность и ориентацию и только решить, следует ли предпринять действие (когда нажимается элемент в A, если устройство не является планшетом [отображается только один фрагмент] start Activity, в котором отображается фрагмент B/change фрагмент A до фрагмента B ...). – logcat

+0

Кроме того, использование XML быстрее, чем запуск Java-кода и более аккуратный (вам не нужно использовать FragmentManager с его commit()/commitAllowStateLoss()). – logcat

Смежные вопросы