FrameLayout vs RelativeLayout для оверлеев


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

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

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

1   51   2014-04-05 05:16:56

1 ответ:

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

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

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

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