2010-08-06 16 views
52

Desidero dividere uno schermo per la mia app con due LinearLayouts. Quali parametri dovrei usare per ottenere una divisione esatta in due parti uguali: il primo LinearLayout in alto e il secondo in basso.Come dividere lo schermo con due LinearLayout uguali?

+0

uso peso = 0.5 per ogni layout – Sephy

+2

i pesi di entrambi i layout devono essere "uguali", ha bisogno di essere una frazione – Siddharth

risposta

105

Utilizzare il parametro di peso, circa il layout sarà simile a questa:

<LinearLayout android:orientation="horizontal" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"> 

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

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

</LinearLayout> 
+0

aver digitato il 3 ° 'LinearLayout' sbagliato. – Doomsknight

+0

@Doomsknight thx, corretto! –

+2

Dai un'occhiata a questo tutorial sull'uso dell'attributo layout_weight http://www.chess-ix.com/2012/01/17/the-use-of-layout_weight-with-android-layouts/ –

11

Basta mettere fuori là:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#FF0000" 
    android:weightSum="4" 
    android:padding="5dp"> <!-- to show what the parent is --> 
    <LinearLayout 
     android:background="#0000FF" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="2" /> 
    <LinearLayout 
     android:background="#00FF00" 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1" /> 
</LinearLayout> 
35

sto rispondendo a questa domanda dopo 4-5 anni, ma le migliori pratiche da fare questo approccio, come di seguito

<RelativeLayout 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" 
    tools:context=".MainActivity"> 

    <LinearLayout 
     android:id="@+id/firstLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_toLeftOf="@+id/secondView" 
     android:orientation="vertical"></LinearLayout> 

    <View 
     android:id="@+id/secondView" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_centerHorizontal="true" /> 

    <LinearLayout 
     android:id="@+id/thirdLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_toRightOf="@+id/secondView" 
     android:orientation="vertical"></LinearLayout> 
</RelativeLayout> 

questo è giusto come l'uso di layout_ il peso è sempre pesante per le operazioni dell'interfaccia utente. layout Splitting ugualmente usando LinearLayout non è buona pratica

+0

Davvero un'ottima risposta :) – Arlind

+0

funziona come un vero gioiello. buona risposta allo stato dell'arte – MPhil

+0

Questa è la risposta corretta. –

Problemi correlati