Aufteilung der Activity II

S

stonecold

Neues Mitglied
0
Hallo,

leider hatte noch niemand einen Tipp wie ich mein Problem von gestern lösen kann. Ich habe zu folgendem Codebeispiel mal eine Frage:

Code:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    android:id="@+id/table_widget"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android"
>    
    <TableRow
        android:id="@+id/widget_top"
        android:layout_width="fill_parent"
        android:layout_height="128dp"
        android:background="@color/blue"
        android:orientation="horizontal"
    >
        
    </TableRow>
    
    <TableRow
        android:id="@+id/widget_bottom"
        android:layout_width="fill_parent"
        android:layout_height="32dp"
        android:background="@color/red"
        android:orientation="horizontal"
    >  
    </TableRow>
    
</TableLayout>
Eigentlich hätte ich beim Starten der Activity erwartet, dass sich mein Bildschirm in 2 Teile aufteilt und zwar im Verhältnis 128/32. Der obere Teil sollte blau, der untere rot sein. Leider sehe ich nur ein schwarzes Bild. Wenn ich jeweils einen Button einfüge, erscheinen diese in den TableRows allerdings nicht in der angegebenen Höhe (siehe Anhang).

Ich hoffe ich habe mich verständlich ausgedrückt.

Gruß,
Mario
 

Anhänge

  • beispiel.JPG
    beispiel.JPG
    4,8 KB · Aufrufe: 215
Zuletzt bearbeitet:
Also ein TableLayout ist hier glaub ich nicht das Richtige. In deinem Beispiel passt sich eine Row einfach der Größes des beinhalteten Views (hier Button) an. Leider kann man die Größe der Row auch nicht so einfach einstellen.

Probiere es daher doch einfach mal mit verschachtelten LinearLayouts.

Für jede Farbe/Button (=row) in deinem Beispiel machst du ein eigenes LinearLayout. Diese setzt du dann auf die gewünschten Größen.

Also zB. so:

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android" >    
     
     <LinearLayout
        android:layout_height="350dp"
        android:layout_width="fill_parent"
        android:background="@color/blue"
        android:orientation="horizontal" >
    
        <Button
               android:text="Button A"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        />
    </LinearLayout>
     
     <LinearLayout
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:background="@color/red"
        android:orientation="horizontal" >
        
        <Button 
            android:text="Button B"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        />
     </LinearLayout>
           
</LinearLayout>
Die Größenrelationen der beiden "Rows" zueinander kannst du nun über die Höhenparameter der beiden inneren LinearLayouts ganz flexibel einstellen.
In meinem Beispiel ist die erste auf 350dp eingestellt und die zweite nimmt über den Parameter height="fill_parent" die restliche Fläche ein.
Somit kannst du steuern wieviel Platz des Bildschirms jede "Row" im Verhältnis einnehmen soll. Auch wie sich die Buttons innerhalb der "Rows" verhalten sollen, ist nun frei festlegbar.

Ich hoffe, dass ich dein Problem richtig verstanden habe und du es mit dieser Lösung hinkriegen kannst.
 
  • Danke
Reaktionen: stonecold
Wow tobbbbi, Danke!
Das ist genau wonach ich gesucht habe.

Vielleicht kannst du mir noch eine andere Frage beantworten.
Soweit ich weiß ist nutzt man die Größenangaben in dp bzw. dip um Auflösungsunabhängig arbeiten zu können!???

Was genau wird für die Displays in vertikaler (bzw. horizontaler) Richtung denn als Höhe angenommen? Bei mir sieht es so aus, als wären es 480dp. Trifft das jetzt auf alle Auflösungen zu?

Danke und Gruß,
Mario
 

Ähnliche Themen

M
Antworten
3
Aufrufe
149
moin
M
M
  • maksimilian
Antworten
15
Aufrufe
1.695
maksimilian
M
M
Antworten
8
Aufrufe
952
deek
D
Zurück
Oben Unten