1

Ich möchte 3 separate LinearLayout Steuerelemente in einem RelativeLayout platzieren und die verfügbare Höhe zwischen den 3 LinearLayout Steuerelementen aufteilen, so dass sie alle eine gleichmäßige Höhe haben.Höhe in 3 mit LinearLayouts teilen

Ich habe versucht, weightSum, sowie gravity, aber keiner von diesen funktioniert, wie ich falsch angenommen würde. Ich habe über layout_weight gelesen, aber dies ist nicht verfügbar in LinearLayout.

Ich kann jedem von ihnen eine statische Höhe geben, aber woher weiß ich den verfügbaren Platz für jedes Gerät, auf dem die App ausgeführt werden kann?

Hier ist mein aktueller Code:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/bg_image"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="top" 
     android:weightSum="1"> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:weightSum="1"></LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="bottom" 
     android:weightSum="1"></LinearLayout> 

</RelativeLayout> 

ich noch Android Entwicklung lerne, so dass jede Hilfe/Rat würde geschätzt.

+0

I "layout_weight" in den meisten Fällen verwenden suchen – Nabin

Antwort

1

wird das folgende Layout 3 LinearLayout haben gleichmäßig vertikal

 <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:weightSum="3" 
      android:orientation="vertical" 
      android:background="@drawable/bg_image"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1"> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1"> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1"> 
      </LinearLayout> 

    </LinearLayout> 
+0

Ich akzeptiere diese Lösung, da ich ursprünglich LinearLayouts verwenden wollte. –

0

Ich habe über layout_weight, lesen, aber das ist nicht verfügbar in LinearLayout

Nein, Sie sind falsch LinearLayout Träger ein Gewicht auf einzelne Kinder mit dem android:layout_weight Attribute zuweisen.

Ich möchte in einem RelativeLayout, 3 separate LinearLayout Kontrollen setzen und die zur Verfügung stehende Höhe zwischen den drei Linearlayout Kontrollen unterteilen, so dass sie alle eine gleichmäßige Höhe aufweisen.

Zugabe Bessere 3 separate RelativeLayout innerhalb LinearLayout und dann android:weightSum="3" an die Eltern geben LinearLayout und android:layout_weight="1" für jedes Kind RelativeLayout.

+0

Warum würden Sie vorschlagen, ich Relative Layouts stattdessen? –

+0

Sie haben nach dem relativen Layout gefragt, so dass ich vorgeschlagen habe, das relative Layout innerhalb des linearen Layouts zu verschachteln. Hast du deshalb die Antwort nicht akzeptiert? –

+0

Ja. Obwohl Ihre Lösung mein anfängliches Problem gelöst hat, verstehe ich nicht, warum ich RelativeLayout innerhalb von LinearLayout platzieren sollte. Ich bin mir sicher, dass LinearLayout für meine Bedürfnisse am besten geeignet ist, da ich einige Symbole horizontal in ihnen arrangieren muss. –

0

geteilt s ist, dass Sie für

<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"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"></LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"></LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"></LinearLayout> 
</LinearLayout> 
+0

Danke, wenn ich upvote hätte, hätte ich. –

+0

@android_noob keine Sorgen :) – homer