Какова цель FrameLayout и в каком сценарии нам следует его использовать?

StackOverflow https://stackoverflow.com//questions/10680416

Вопрос

Какую цель имеет FrameLayout служить на Android?Есть ли какой-то конкретный сценарий, для которого он предназначен?

В моем приложении для Android есть сценарий, в котором мне нужно показать два ImageViewс, один над другим.Это .png файл изображения с 9-патчами, которые можно нарисовать поверх этого изображения.

Который ViewGroup я должен использовать для этой цели: RelativeLayout или FrameLayout?

Я также хочу знать различные сценарии, которые может реализовать каждый из ViewGroups следует использовать для.

Это было полезно?

Решение

Да, вы можете использовать FrameLayout в вашем сценарии.

Другие советы

Я не помню, как я дошел до этого вопроса, но вот мой ответ, который может помочь любому:

Как вы видете здесь

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

В общем, бесполезно иметь два представления одно над другим, потому что вы получите эффект перерисовки (область экрана, которая прорисовывается графическим процессором более одного раза, что действительно бесполезно).

Если очень надо, то нужно использовать метод onDraw (пример можно посмотреть здесь) и Canvas API (посмотрите здесь) и метод clipRect (вы можете увидеть пример здесь)

Что касается FrameLayout или RelativeLayout, если вы хотите, чтобы все было просто или в вашей деятельности уже достаточно вложенных макетов, лучше используйте FrameLayout.В 2017 году появился макет ограничений, который также может оказаться полезным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top