9

Ho uno schermo con ScrollView e tre diversi LinearLayouts.Come dividere lo schermo in tre parti in verticale?

Uno LinearLayout contiene un Spinner e secondo contiene ListView e terza contiene due Buttons (orizzontale).

Desidero visualizzare una schermata contenente 3 LinearLayouts sempre visualizzata nella parte inferiore dello schermo e 1 LinearLayout sempre visualizzata nella parte superiore. Nella parte centrale, voglio visualizzare il contenuto di ListView. In modo che sullo schermo intero non ci sia spazio vuoto presente.

Voglio creare uno schermo per più dispositivi che ha diverse dimensioni.

 <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/backrepeat" 
android:orientation="vertical" > 

<include 
    android:id="@+id/include1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    layout="@layout/actionbar" > 
</include> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scrollbars="horizontal" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:padding="10dp" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight=".2" 
      android:background="@drawable/rounded_border" 
      android:orientation="vertical" 
      android:padding="15dp" > 

      <TextView 
       android:id="@+id/tvDiaryData" 
       style="@style/greenstyle" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/heading" 
       android:gravity="center_horizontal" 
       android:text="@string/tvDiaryData" > 
      </TextView> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="10dp" 
       android:gravity="center_horizontal" > 
      </TextView> 

      <Spinner 
       android:id="@+id/spDiaryAllBooking" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:prompt="@string/select_diaryallbooking" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1.6" 
      android:background="@drawable/layerlist" 
      android:orientation="vertical" 
      android:paddingBottom="5dp" 
      android:paddingLeft="15dp" 
      android:paddingRight="15dp" 
      android:paddingTop="5dp" > 

      <ListView 
       android:id="@+id/lvDiaryBooking" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:divider="#636466" 
        android:layout_weight="1" 
       android:dividerHeight="1dip" 
       android:scrollbarStyle="outsideOverlay" 
       android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight=".2" 
      android:background="@drawable/rounded_border" 
      android:orientation="horizontal" 
      android:padding="10dp" > 

      <Button 
       android:id="@+id/btnDiaryBook" 
       style="@style/greenButton" 
        android:layout_weight="1" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent"      
       android:onClick="btnDiaryBook_Click" 
       android:text="@string/btnBook" > 
      </Button> 

      <Button 
       android:id="@+id/btnDiaryBalance" 
       style="@style/greenButton" 
        android:layout_weight="1" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_marginLeft="10dp"     
       android:onClick="btnDiaryBalance_Click" 
       android:text="@string/btnDiaryBalance" > 
      </Button> 
     </LinearLayout> 
    </LinearLayout> 
     </ScrollView> 

    </LinearLayout> 

Layout dello schermo con quello che voglio:

enter image description here

Current Layout - This give blank space on below of screen on tablet

risposta

21

Si tratta di una soluzione molto semplice. Dovresti essere in grado di usarlo nel tuo attuale layout.

Compila semplicemente lo LinearLayouts con i contenuti desiderati.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/ll1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/ll2" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/ll3" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" > 
    </LinearLayout> 

</LinearLayout> 

Screen shot del codice scritto sopra con i colori che mostrano le diverse aree di layout.

enter image description here

+1

due modifiche - utilizzare "fill_parent" invece di "match_parent" e provate ad impostare la dimensione che si sta cercando di standardizzare a '0DP' ... In questo caso, layout_height = "0DP" invece di layout_height = "fill_parent" – edthethird

+1

@edthethird pretty sure fill_parent è deprecato e dovresti comunque utilizzare match_parent. fanno la stessa cosa –

+0

oh hai ragione, l'ho fatto all'indietro. – edthethird

Problemi correlati