8

Я создаю приложение с одним действием MainActivity которое состоит из двух фрагментов. И я столкнулся со многими учебниками, которые используют FrameLayout в качестве родительского контейнера для макета фрагмента.Можно ли использовать LinearLayout вместо FrameLayout?

Однако я узнал, что могу использовать LinearLayout в качестве родительского контейнера фрагмента, и он отлично работает (до сих пор).

Мой вопрос: есть ли побочный эффект (ы) использования FrameLayout в качестве родительского контейнера для компоновки фрагментов?

Если нет, то в чем преимущество использования FrameLayout более LinearLayout (или другого возможного макета) в качестве родительского контейнера макета фрагмента.

+0

Можете ли вы опубликовать код, который вы используете 'FrameLayout' и' LinearLayout' –

+2

Вы должны изменить название, это говорит о фрагментации ... –

ответ

3

самостоятельно отображаются как любые View, поэтому вы можете использовать любой родительский ViewGroup, который вам понравился бы в зависимости от того, как вы хотите, чтобы ваш макет выглядел. Это означает, что нет никакой выгоды от LinearLayout против FrameLayout, привязанной к Fragments.

Основное различие между FrameLayout и LinearLayout заключается в том, что Views складывается в пределах FrameLayout.

Другими словами, если вы хотите, чтобы ваш Fragments был потенциально перекрыт, используйте FrameLayout. Если вы хотите, чтобы они отображались линейно, используйте LinearLayout. Если это полноэкранный Fragment, тогда, вероятно, не имеет значения, что вы выберете.

4

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

2

Это прекрасно. Вы можете использовать. Но, в целом:

LinearLayout Используется для выравнивания видов по одному по вертикали или по горизонтали. так что несколько дочерних представлений могут соответствующим образом упорядочиваться.

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

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