XML-Layout

  • Antworten:9
DerKiLLa
  • Forum-Beiträge: 8

09.01.2011, 16:29:44 via Website

Hallo zusammen, hab mal wieder eine Frage.
Und zwar komme ich bei meinem Layout einfach nicht weiter ...



Also, wie zu erkennen, soll oben ein Textview sein.
Darunter soll ein Listview sein, welches später viele Elemente enthält, wo also gescrollt wird.
Unten drunter sollen 4 Buttons sein, die aber ingesamt zentriert sein sollen.

Die Liste muss also zwischen den Buttons und der Textview sein.

Hab es zwar schon hinbekommen, aber dann hab ich die Buttons nicht unten zentriert hinbekommen ...

Das würde halt besonders auffallen, wenn sich die Displaygröße von der unterscheidet, mit der ich gerade teste, dann wären die Buttons links zentriert.

Hab es auch versucht, die 4 Buttons in ein neues RelativeLayout zu packen und dieses dann zu zentrieren, dann geht es aber leider gar nicht mehr mit der Liste.

1<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_width="fill_parent"
3 android:layout_height="fill_parent"
4 android:padding="6dip">
5
6 <TextView
7 android:id="@+id/firstLine"
8
9 android:layout_width="fill_parent"
10 android:layout_height="wrap_content"
11
12 android:text="Titelleiste"
13 android:textSize="12px"
14 android:gravity="center"
15 />
16 <Button
17 android:id="@+id/Button01"
18 android:text="First"
19 android:layout_width="75dip"
20 android:layout_height="wrap_content"
21 android:layout_alignParentBottom="true"
22 android:textSize="10px"
23 />
24 <Button
25 android:id="@+id/Button02"
26 android:text="Previous"
27 android:layout_width="75dip"
28 android:layout_height="wrap_content"
29 android:layout_alignParentBottom="true"
30 android:layout_toRightOf="@+id/Button01"
31 android:textSize="10px"
32 />
33 <Button
34 android:id="@+id/Button03"
35 android:text="Next"
36 android:layout_width="75dip"
37 android:layout_height="wrap_content"
38 android:layout_alignParentBottom="true"
39 android:layout_toRightOf="@+id/Button02"
40 android:textSize="10px"
41 />
42 <Button
43 android:id="@+id/Button04"
44 android:text="Last"
45 android:layout_width="75dip"
46 android:layout_height="wrap_content"
47 android:layout_alignParentBottom="true"
48 android:layout_toRightOf="@+id/Button03"
49 android:textSize="10px"
50 />
51 <ListView
52 android:layout_width="fill_parent"
53 android:layout_height="fill_parent"
54 android:layout_above="@+id/Button01"
55 android:layout_below="@+id/firstLine"
56 android:id="@android:id/list"
57 />
58</RelativeLayout>

— geändert am 09.01.2011, 23:14:24

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

09.01.2011, 17:01:25 via Website

was spricht dagegen die buttons in ein linearlayout zu packen und zu zentrieren?

swordiApps Blog - Website

Antworten
DerKiLLa
  • Forum-Beiträge: 8

09.01.2011, 17:04:55 via Website

Hab ich ebenfalls versucht, aber hat auch nicht geklappt, da ich es nicht geschafft habe, dann die Liste zwischen das Textview und die Buttons zu bekommen.
Ein LinearLayout konnte ich nicht nach unten an de Bildschirm "heften"

— geändert am 09.01.2011, 17:06:30

Antworten
DerKiLLa
  • Forum-Beiträge: 8

12.01.2011, 10:20:35 via Website

Aber wie skaliert ein TableLayout automatisch? Es müsste ja so sein, dass auf jeder Displaygröße die ListView ca 80% einnimmt und die Buttons, bzw das LinearLayout darunter 20%.

TextView oben drüber kann übrigens vernachlässigt werden, wird erstmal nicht gebraucht.

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

12.01.2011, 15:20:21 via App

Hi, ich weiß, dass es suboptimal ist, viele Layouts zu verschachteln, aber ich würde ein LinearLayout (vertical) nehmen und darin oben die(?) TextView packen. Darunter ListView und ein LinearLayout (horizontal) mit den Buttons darin. Achja, bei der ListView Layoutweight auf 1 und height auf wrap_content. Sonst immer width auf fill_parent bei den 3.
Lg Ansgar

Antworten
John Do
  • Forum-Beiträge: 36

31.03.2011, 17:45:24 via Website

Im folgenden ein Codebeispiel, welches beim Wechsel zwischen protrait und landscape die Knöpfe zentriert. Das Beispiel wird jedoch an einer googleMapsKarte verdeutlicht. Ich hoffe es hilft.

1
1<?xml version="1.0" encoding="utf-8"?>
2<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="fill_parent"
5 android:layout_height="fill_parent"
6 android:background="#FFFFFF"
7 >
8 <com.google.android.maps.MapView
9 xmlns:android="http://schemas.android.com/apk/res/android"
10 android:id="@+id/mapview"
11 android:layout_width="fill_parent"
12 android:layout_height="fill_parent"
13 android:clickable="true"
14 android:apiKey="trage deine Key ein!"
15/>
16<TextView
17 android:layout_width="fill_parent"
18 android:layout_height="wrap_content"
19 />
20 <RelativeLayout
21 android:layout_width="fill_parent"
22 android:layout_height="wrap_content"
23 android:layout_gravity="bottom"
24 android:background="#FF0099"
25 android:gravity="center_horizontal|bottom">
26 <Button
27 android:id="@+id/KarteButton"
28 android:layout_width="80dp"
29 android:layout_height="wrap_content"
30 android:text="@string/Karte"
31 android:textSize="12sp"
32 >
33 </Button>
34 <Button
35 android:id="@+id/GeschaefteButton"
36 android:layout_width="80dp"
37 android:layout_height="wrap_content"
38 android:text="@string/Geschaefte"
39 android:layout_toRightOf="@id/KarteButton"
40 android:textSize="12sp"
41 >
42 </Button>
43 <Button
44 android:id="@+id/SucheButton"
45 android:layout_width="80dp"
46 android:layout_height="wrap_content"
47 android:text="@string/Suche"
48 android:layout_toRightOf="@id/GeschaefteButton"
49 android:textSize="12sp"
50 >
51 </Button>
52 <Button
53 android:id="@+id/EinstellungenButton"
54 android:layout_width="80dp"
55 android:layout_height="wrap_content"
56 android:text="@string/Einstellungen"
57 android:layout_toRightOf="@id/SucheButton"
58 android:textSize="12sp"
59 >
60 </Button>
61 </RelativeLayout>
62
63</FrameLayout>

Antworten
John Do
  • Forum-Beiträge: 36

31.03.2011, 17:53:39 via Website

Mein Problem, aufbauend auf dem oben genannten Beispiel, ist, dass ich mehrere Activities besitze. Alle Activity verweisen auf unterschiedliche xml-Dateien. Diese Dateien haben jedoch alle die vier Buttons am unteren Bildschirmrand als gemeindsames Element.
Gibt es eine Möglichkeit, dass man den code für die Buttons auslagert? Ich möchte nur noch einen Verweis in den xml-Dateien haben und nicht immer alle Buttons per Drag and Drop in die jeweilige xml Datei transferieren.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

31.03.2011, 18:18:36 via Website

einfach ein layout machen

dieses dann per

<include layout="@layout/mein_layout" />

einbinden

swordiApps Blog - Website

Antworten