Widoki i grupy widoków
193
jesteś tutaj
Układy FrameLayout: podsumowanie
Poniżej zamieściliśmy podsumowanie dotyczące tworzenia
układów typu
FrameLayout
.
Definiowanie układu FrameLayout
Do definiowania układu
FrameLayout
służy element
<FrameLayout>
.
Konieczne jest przy tym określenie szerokości i wysokości układu:
Widoki wyświetlane w kolejności występowania w kodzie
Podczas definiowania układu
FrameLayout
poszczególne widoki do niego
dodawane w takiej kolejności, w jakiej chcemy, by były wyświetlane. Pierwszy
z widoków jest wyświetlany na samym dole stosu, drugi nad nim i tak dalej.
Położenie widoków można określać przy użyciu atrybutu
layout_gravity
Do określania tego, w którym miejscu układu chcemy wyświetlać umieszczone
w nim widoki, należy używać atrybutu
android:layout_gravity
. Na przykład
możemy go zastosować, by przesunąć widok na końce obszaru zajmowanego przez
układ bądź też do końcowego, dolnego wierzchołka.
Teraz, kiedy już wiesz, jak używać dwóch prostych układów,
liniowego i ramki, możesz się zmierzyć z ćwiczeniem
zamieszczonym na następnej stronie.
<FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
...>
...
</FrameLayout>
activity_main.xml
¨
Układ LinearLayout
¨
Układ FrameLayout
¨
Układ LinearLayout
¨
Układ FrameLayout
194
Rozdział 5.
Ćwiczenie
Bądź układem
Trzy spośród pięciu układów pokazanych
na tej stronie zostały utworzone przez
układy przedstawione na następnej
stronie. Twoim zadaniem
jest dopasowanie każdego
z trzech układów do ekranów
reprezentujących ich wygląd.
1
2
3
5
4
Widoki i grupy widoków
195
jesteś tutaj
<LinearLayout xmlns:android=
”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
tools:context=”com.hfad.widoki.MainActivity” >
<Button
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:text=”CZEŚĆ!” />
</LinearLayout>
<LinearLayout xmlns:android=
”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
tools:context=”com.hfad.widoki.MainActivity” >
<Button
android:layout_width=”match_parent”
android:layout_height=”0dp”
android:layout_weight=”1”
android:text=”CZEŚĆ!” />
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Siemka!” />
</LinearLayout>
<LinearLayout xmlns:android=
”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
tools:context=”com.hfad.widoki.MainActivity” >
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”CZEŚĆ!” />
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Siemka!” />
</LinearLayout>
A
B
C
196
Rozdział 5.
Rozwiązanie
Bądź układem. Rozwiązanie
Trzy spośród pięciu układów pokazanych
na tej stronie zostały utworzone przez
układy przedstawione na następnej
stronie. Twoim zadaniem
jest dopasowanie każdego
z trzech układów do ekranów
reprezentujących ich wygląd.
<LinearLayout xmlns:android=
”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
tools:context=”com.hfad.widoki.MainActivity” >
<Button
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:text=”CZEŚĆ!” />
</LinearLayout>
<LinearLayout xmlns:android=
”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
tools:context=”com.hfad.widoki.MainActivity” >
<Button
android:layout_width=”match_parent”
android:layout_height=”0dp”
android:layout_weight=”1”
android:text=”CZEŚĆ!” />
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Siemka!” />
</LinearLayout>
Ten układ
zawiera tylko
jeden przycisk
zajmujący cały
obszar ekranu.
Ten przycisk
wypełnia prawie
cały ekran,
zostawiając
jedynie u dołu
nieco miejsca na
drugi przycisk.
Żaden z układów
nie pozwala
wygenerować
ekranu o takiej
postaci.
1
3
A
B
Widoki i grupy widoków
197
jesteś tutaj
Układy i komponenty GUI mają wiele wspólnego
Być może zauważyłeś, że układy wszystkich typów mają kilka wspólnych atrybutów.
Niezależnie od typu używanego układu musimy określić jego szerokość i wysokość,
używając do tego celu atrybutów
android:layout_width
i
android:layout_height
.
Wymóg określania wymiarów nie ogranicza się jednak do układów — dokładnie te
same dwa atrybuty,
android:layout_width
i
android:layout_height
, muszą być
dodawane do wszystkich komponentów GUI.
Dzieje się tak dlatego, że
wszystkie układy i komponenty GUI są klasami
dziedziczącymi po klasie
View
. Przyjrzyjmy się temu zagadnieniu nieco dokładniej.
4 C
<LinearLayout xmlns:android=
”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
tools:context=”com.hfad.widoki.MainActivity” >
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”CZEŚĆ!” />
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Siemka!” />
</LinearLayout>
W obu przyciskach atrybutom
layout_width oraz layout_height
przypisano wartość „wrap_content”,
dzięki czemu zajmują one tylko tyle
miejsca, ile trzeba na wyświetlenie
ich zawartości.

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.