188
Rozdział 5.
Układ FrameLayout
Układy FrameLayout
rozmieszczają widoki jeden na drugim
Jak już się przekonałeś, układy
LinearLayout
rozmieszczają widoki w pojedynczym
wierszu lub pojedynczej kolumnie. Każdemu widokowi jest przydzielany odrębny
fragment powierzchni ekranu, a same widoki nie nakładają się na siebie.
Czasami jednak może się zdarzyć, że będziemy
chcieli, by widoki nakładały się na
siebie. Na przykład wyobraźmy sobie, że chcemy wyświetlić jakiś tekst na tle zdjęcia.
Stosując układ
LinearLayout
, nie bylibyśmy w stanie uzyskać takiego efektu.
Jeśli potrzebujemy układu, w którym poszczególne widoki mogą się na siebie
nakładać, to najprostszym rozwiązaniem będzie użycie układu
FrameLayout
,
nazywanego także
układem ramki
. Układ
FrameLayout
nie wyświetla widoków
w jednym wierszu lub jednej kolumnie, lecz zamiast tego umieszcza je na stosie
— jeden na drugim. Dzięki temu można, na przykład, wyświetlić tekst na obrazie.
Definiowanie układu ramki
Układ ramki definiuje się przy użyciu elementu
<FrameLayout>
,
jak przedstawiliśmy to w poniższym przykładzie:
<FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
...>
...
</FrameLayout>
Do definiowania
układu ramki
służy element
<FrameLayout>.
To te same atrybuty, których
używaliśmy w układach liniowych.
W tym miejscu należy dodawać
widoki, które mają być wyświetlone
w układzie.
Podobnie jak w przypadku układów liniowych, atrybuty
android:layout_width
oraz
android:layout_height
są obowiązkowe i określają, odpowiednio, szerokość i wysokość układu.
Utworzenie nowego projektu
Aby zobaczyć, jak działa układ
FrameLayout
, zastosujemy go w celu wyświetlenia tekstu na
tle obrazka. Utwórz zatem nowy projekt aplikacji, o nazwie „Kaczusia”, używając nazwy
firmy
hfad.com
, przez co kody aplikacji będą umieszczone w pakiecie
com.hfad.kaczusia
.
Minimalnym poziomem API powinno być API 19 lub wyższe, tak by aplikacja działała na
przeważającej większości urządzeń. Aby Twój projekt odpowiadał naszemu, w aplikacji
utwórz jedną pustą aktywność (
Empty Activity), o nazwie
MainActivity
, korzystającą
z układu o nazwie
activity_main.
Podczas tworzenia aktywności koniecznie zadbaj o to,
by pole wyboru Backwards Compatibility (AppCompat) nie było zaznaczone.
Układy FrameLayout pozwalają nakładać
jedne widoki na inne. To bardzo przydatne
w przypadkach, gdy chcemy stworzyć
interfejs użytkownika, w którym, na przykład,
tekst jest wyświetlany na tle obrazu.
¨
Układ LinearLayout
¨
Układ FrameLayout

Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.