Какова цель FrameLayout и в каком сценарии мы должны его использовать?
зачем FrameLayout
служить в Android? Существует ли какой-либо конкретный сценарий, для которого он предназначен?
в моем приложения для Android, у меня есть сценарий, где я должен показать два ImageView
s, один над другим. Это .png
файл изображения с 9-патч drawable над этим изображением.
, который ViewGroup
должен ли я использовать для этой цели:RelativeLayout
или FrameLayout
?
Я также хочу знать различные сценарии, которые каждый из ViewGroup
s следует использовать для.
2 ответов
Я не помню, как я попал на этот вопрос, но вот мой ответ, который может помочь любому:
Как видите,здесь
FrameLayout предназначен для блокировки области на экране для отображения одного элемента. Как правило, FrameLayout следует использовать для хранения одного дочернего представления, поскольку может быть сложно организовать дочерние представления таким образом, чтобы они масштабировались до разных размеров экрана без перекрытия дочерних представлений другой.
вообще не полезно иметь 2 вида один над другим, потому что вы собираетесь иметь эффект перерисовки (область экрана, которая рисуется gpu более одного раза, что действительно бесполезно).
Если вам действительно нужно, то вам нужно использовать метод onDraw (вы можете увидеть пример здесь) и Canvas API (посмотрите здесь) и метод clipRect (вы можете увидеть пример здесь)
Что касается FrameLayout или RelativeLayout, если вы хотите сохранить вещи простыми или ваша деятельность уже имеет достаточно вложенных макетов, лучше использовать FrameLayout. В 2017 году существует макет ограничений, который также может помочь.