Я новичок в программировании. Я использовал Graphical Layout, тогда, когда я читал XML-файл, я увидел FrameLayout. Потом поискал, но ничего полезного не нашел. Что такое FrameLayout и для чего он нужен?
Я новичок в программировании. Я использовал Graphical Layout, тогда, когда я читал XML-файл, я увидел FrameLayout. Потом поискал, но ничего полезного не нашел. Что такое FrameLayout и для чего он нужен?
Ответы:
Вы используете FrameLayout для наложения дочерних представлений друг на друга, при этом самый последний дочерний элемент находится поверх стека. В приведенном ниже примере TextView является самым последним, поэтому он автоматически помещается поверх ImageView.
Например:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/backgroundImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/bitmapie" />
<TextView
android:id="@+id/descTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="70dp"
android:background="@android:color/holo_blue_light"
android:padding="10dp"
android:text="TextView placed at the top of the Imageview"
android:textColor="@android:color/white"
android:textSize="22sp" />
</FrameLayout>
Выход:
FrameLayout
это простейшая реализация ViewGroup
. Дочерние представления рисуются в стеке, причем последнее добавленное представление отображается вверху. Обычно можно использовать один из следующих подходов или комбинировать их:
FrameLayout
android:layout_gravity
для навигацииЕще популярные подходы к использованию FrameLayout
:
Fragment
контейнерViewGroup
Вы можете рассматривать это слово frame
как обычную фоторамку. Что вы делаете с этой рамкой? вы можете размещать фотографии в этой рамке одна за другой. Как и в случае, FrameLayout
мы можем размещать представления (любой макет или виджет, например, кнопку, текст, изображение и т. Д.) Поверх других, поскольку @ojonugwa показывает вам текстовое представление сверху изображения.
iframe
веб-разработке. Спасибо за простейшее объяснение.
Вы уверены, что гуглили?
Макет кадра предназначен для блокирования области на экране для отображения одного элемента. Как правило, FrameLayout следует использовать для хранения одного дочернего представления, потому что может быть сложно организовать дочерние представления таким образом, чтобы можно было масштабировать их для разных размеров экрана без наложения дочерних элементов друг на друга.
Однако вы можете добавить несколько дочерних элементов в FrameLayout и управлять их положением в FrameLayout, назначив каждому дочернему элементу гравитацию с помощью атрибута android: layout_gravity.
Секрет FrameLayout в том, как он размещает своих дочерних элементов. Хотя обычно он предназначен для размещения одного элемента, он с радостью складывает другие элементы друг на друга. Таким образом, FrameLayout - это, по сути, способ управления Z-порядком представлений на экране.
Это очень полезно для пары трюков пользовательского интерфейса от элементов, подобных HUD, до скользящих панелей и более сложных анимированных переходов. В этом посте мы увидим пример для каждого из них.
FrameLayout предназначен для отображения одного элемента за раз. Вы можете иметь несколько элементов внутри FrameLayout, но каждый элемент будет располагаться в соответствии с левым верхним уголком экрана. Элементы, которые перекрывают друг друга, будут отображаться внахлест. Я создал простой XML-макет с использованием FrameLayout, который показывает, как это работает.
В основном он помещает одно представление поверх другого, например:
Увеличение текста на изображении
<FrameLayout>
<ImageView>
<Textview>
</FrameLayout>