2012-04-04 8 views
2

Ich versuche 1 Bild oben auf meinem LinearLayout und 1 unten auf dem LinearLayout zu haben.Wie bekomme ich android: layout_gravity = "bottom" um in LinearLayout zu arbeiten

Aber nach all den Dingen, die ich versucht habe, kann ich nur 1 Bildlayout unter einem anderen bekommen. Ich möchte 1 nach oben ausrichten, 1 nach unten ausrichten.

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:background="@drawable/bg1" 
     android:layout_gravity="top" /> 
    <ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:background="@drawable/bg2" 
     android:layout_gravity="bottom" /> 
</LinearLayout> 

Ich habe versucht, RelativeLayout (im Hauptbehälter) unter Verwendung von mit layout_alignParentBottom (in meinem zweiten Bild), aber das löst nicht mein Problem.

Vielen Dank für eine Idee.

Antwort

3

Die folgende RelativeLayout funktioniert (getestet):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/RelativeLayout1" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" > 

<ImageView 
    android:id="@+id/ImageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:background="@drawable/bg1" /> 

<ImageView 
    android:id="@+id/ImageView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/ImageView1" 
    android:background="@drawable/bg2" /> 

Wenn Sie immer noch Probleme oberhalb dieser RelativeLayout den Behälter überprüfen. Wenn es die Wurzel ist, sieht alles gut aus.

+0

Dank. Aber mit RelativeLaoyout kann ich keine vertikale Ausrichtung festlegen. Und gibt es einen Grund, warum layout_gravity = "bottom" in meinem Fall nicht funktioniert? – michael

+0

Ein LinearLayout legt Dinge linear hintereinander (wie es der Name andeutet). Ich vermute, dass das zweite Bild am unteren Rand des linearen Layouts liegt, das nicht groß genug ist, um seine Eltern zu füllen. RelativeLayout ist der Weg zu gehen - Einstellung der vertikalen Ausrichtung erfolgt durch Ausrichtung auf Eltern links/Mitte/rechts und Ausrichtung nach oben oder unten. Sie müssen sicherstellen, dass Ihre Höhe das übergeordnete Element (match_parent) so füllt, dass es groß genug ist, um oben/unten am Bildschirm/Elternelement auszurichten. – Colin

+0

Wie Colin sagte, muss für RelativeLayout keine Ausrichtung angegeben werden. Die Ansichten werden nach innen platziert, je nachdem, wie Sie sie ausrichten. In diesem Fall lege ich einen darüber und einen anderen auf den Boden. Da das Layout den gesamten verfügbaren Platz in der Vertikalen ausfüllt, sieht es wie ein vertikales Layout mit einer Ansicht oben und einer unten aus. Probieren Sie es einfach aus;) – azertiti

0

Dies ist die Lösung für Ihr Problem:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <ImageView 
     android:id="@+id/imgTop" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:background="@drawable/bg1" 
     android:layout_alignParentTop="true" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_below="@id/imgTop" 
     android:layout_above="@+id/imgBottom"> 

    </LinearLayout> 


    <ImageView 
     android:id="@id/imgBottom" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:background="@drawable/bg2" 
     android:layout_alignParentBottom="true" /> 

</RelativeLayout> 
Verwandte Themen