Я новачок у програмуванні. Тоді я використовував графічний макет, коли читав файл xml, я побачив FrameLayout. Потім я шукав, але не міг знайти щось корисне. Що таке FrameLayout і що він робить?
Я новачок у програмуванні. Тоді я використовував графічний макет, коли читав файл 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>