Подтвердить что ты не робот

FrameLayout против RelativeLayout для наложений

Мне нужно реализовать наложение (полупрозрачный) экран для моего приложения, что-то похожее на Витринный вид

Мое предположение заключалось в использовании FrameLayout для этой утилиты, поскольку она используется для складывания элементов друг на друга. Но я был удивлен, увидев, что в вышеупомянутой библиотеке используется RelativeLayout.

Мой вопрос в том, когда использовать FrameLayout, а если не в таких случаях? Каковы недостатки, если я иду по пути FrameLayout?

4b9b3361

Ответ 1

Общее правило при выборе макетов состоит в выборе комбинации, которая приводит к наименьшему количеству вложенных видов макетов.

В зависимости от вашего вопроса, RelativeLayout больше и эффективнее, чем гораздо более простой FrameLayout. Так что для простых макетов последний, вероятно, более эффективен. Но если использование RelativeLayout и добавленных опций позиционирования позволяет реализовать графический интерфейс в меньшем количестве видов компоновки, то это, вероятно, будет лучшим выбором.

Здесь страница, которая обсуждает некоторые компромиссы и демонстрирует некоторые полезные инструменты, которые можно использовать при разработке макетов. В основном речь идет о RelativeLayout и LinearLayout, но также имеет отношение к вашему выбору между RelativeLayout и Framelayout. Просто помните, что FrameLayout - это еще более простой макет.

Редактировать (2017): Для еще более сложных макетов вы можете избежать вложенных макетов с помощью ConstraintLayout.