2016-03-22 13 views
-1

Ich versuche, eine horizontale Bildlaufleiste an der Spitze ausgerichtet (mit Schaltflächen) und dann ein relatives Layout danach (die enthalten kann, was auch immer ich dort einfügen) und dann eine endgültige horizontal Bildlaufleiste am unteren Rand ausgerichtet. Wie erzwinge ich, dass die horizontalen Bildlaufleisten an der Ober-/Unterseite fixiert werden und sich dann das relative Layout in der Mitte zu allen anderen dazwischen erstreckt?So ordnen Sie diese drei Elemente in Android

+0

können Sie Beiträge verfassen s creenshot oder wireframe oder code –

+0

Sie können Partition dieses Layouts verwenden lik Verwendung von layout_weight = "" –

+0

Ich möchte, dass die obere und untere Höhe ihren Inhalt zu umhüllen, aber die Mitte relativ Layout alles zwischen –

Antwort

0

Linearlayout Mit ...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center"> 
    <RelativeLayout 
     android:id="@+id/top_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"></RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/middle_container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"></RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/bottom_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    </RelativeLayout> 
</LinearLayout> 

Mit RelativeLayout ....

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
    > 
    <RelativeLayout 
     android:id="@+id/top_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true"></RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/bottom_container" 
     android:layout_width="match_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_height="wrap_content"> 
    </RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/middle_container" 
     android:layout_width="match_parent" 
     android:layout_below="@id/top_container" 
     android:layout_above="@id/bottom_container" 
     android:layout_height="match_parent"></RelativeLayout> 
</RelativeLayout> 
+0

Die 'android: layout_height = "0dp"/android: layout_weight = "1" 'ist was ich vermisst habe. Wie unterscheidet sich das von der Verwendung von match_parent oder wrap_content? Wie kommt es, dass das funktioniert? –

+0

OK, also ist die Höhe des oberen Containers und des unteren Containers wrap_content, es wird nur die von ihren Childs benötigte Höhe benötigt, und durch die Angabe von Gewicht = 1 und Höhe = 0dp im mittleren Container wird die verbleibende Höhe benötigt. – Ritesh

+0

Das gleiche erreichen Sie in der Breite, indem Sie Eigenschaften wie width = "0dp" und w Gewicht = "1" angeben. – Ritesh

0

Sie layout_weight innerhalb eines LinearLayout verwenden können, um es zu erweitern, das Layout zu füllen.

Zum Beispiel:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 
    <HorizontalScrollView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 
     <!-- Buttons --> 
    </HorizontalScrollView> 
    <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" > 
     <!-- Content --> 
    </RelativeLayout> 
    <HorizontalScrollView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 
     <!-- More Buttons --> 
    </HorizontalScrollView> 
</LinearLayout> 
0

Post Drahtgitter, damit wir besser helfen können. Aber ich denke, Ihre Lösung ist wahrscheinlich: - Halten Sie Ihr Hauptlayout ein RelativeLayout.Take ein anderes LinearLayout unter Ihrem Hauptlayout mit Ausrichtung vertikal.Place Ihre horizontale scrollview und andere Elemente in LinearLayout und außerhalb dieser LinearLayout, behalten Sie Ihre horizontale scrollview mit diesem Attribut :

android: layout_alignParentBottom = "true"

Ihre xml wird wie folgt aussehen:

<RelativeLayout> 
    <LinearLyout> 
    // horizontal scrollview 
    // other items 
    </LinearLayout> 
    // horizaontal scrollview with alignparentbottom="true" 
</RelativeLAyout> 
Verwandte Themen