2012-09-05 78 views
1

我有一個LinearLayout應該包含一個項目列表(每個項目是一個LinearLayout)。 問題是childs項目(LinearLayouts)不會一個顯示在另一個之下:只有第一個可見。在另一個LinearLayout中添加多個LinearLayout不能正常工作

這是我layout.xml:

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    android:id="@+id/label_TextView" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:layout_weight="2" 
    android:paddingLeft="@dimen/form_label_padding_left" 
    android:text="" /> 

<LinearLayout 
    android:id="@+id/form_list_holder" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content"   
    android:layout_weight="8" 
    android:orientation="horizontal" 
    android:background="@color/form_list_background" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/label_TextView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2" 
      android:paddingLeft="@dimen/form_label_padding_left" 
      android:text="1" /> 

     <EditText 
      android:id="@+id/edtx_input1" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="5" /> 

     <EditText 
      android:id="@+id/edtx_remark1" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="3" 
      android:hint="@string/remarks" 
      android:visibility="invisible" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/label_TextView2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2" 
      android:paddingLeft="@dimen/form_label_padding_left" 
      android:text="1" /> 

     <EditText 
      android:id="@+id/edtx_input2" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="5" /> 

     <EditText 
      android:id="@+id/edtx_remark2" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="3" 
      android:hint="@string/remarks" 
      android:visibility="invisible" /> 
    </LinearLayout> 
</LinearLayout> 

你知道這是爲什麼發生?我認爲在LinearLayout中,如果當前行沒有更多的可用空間,孩子將顯示在下一行。

+1

改變方向垂直 –

+0

並設置**安卓weightsum **父申請** ** layout_weight – Ishtiaq

回答

3

您的LinearLayout其ID是form_list_holder有一個android:orientation="horizontal"

的方向應垂直,而不是usign android:orientation="vertical"

+0

謝謝,這是問題所在。 –

0

設置了所有的Android:layout_width =「0dp」,這意味着你將無法看到任何東西。將0dp更改爲match_parent。

0

試試這個

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/form_list_holder" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"   
    android:layout_weight="8" 
    android:orientation="vertical" 
    android:background="@color/form_list_background" > 

    <TextView 
      android:id="@+id/label_TextView" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2" 
      android:paddingLeft="@dimen/form_label_padding_left" 
      android:text="" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/label_TextView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2" 
      android:paddingLeft="@dimen/form_label_padding_left" 
      android:text="1" /> 

     <EditText 
      android:id="@+id/edtx_input1" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="5" /> 

     <EditText 
      android:id="@+id/edtx_remark1" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="3" 
      android:hint="@string/remarks" 
      android:visibility="invisible" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/label_TextView2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2" 
      android:paddingLeft="@dimen/form_label_padding_left" 
      android:text="1" /> 

     <EditText 
      android:id="@+id/edtx_input2" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="5" /> 

     <EditText 
      android:id="@+id/edtx_remark2" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/form_input_height" 
      android:layout_marginTop="@dimen/form_edittext_margin_top" 
      android:layout_weight="3" 
      android:hint="@string/remarks" 
      android:visibility="invisible" /> 
    </LinearLayout> 
</LinearLayout> 
1

與內RelativeLayout的線性佈局嘗試。這樣就可以設置

android:layout_below="@+id/above_layout" //above_layout is the id of previous layout 


<RelativeLayout> 
    <LinearLayout 
     android:id="@+id/layout1" 
     android:layout_width="Wrap_Content" 
     android:layout_height="Wrap_Content"> 

    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/layout2" 
     android:layout_width="Wrap_Content" 
     android:layout_height="Wrap_Content" 
     android:layout_below="@+id/layout1"> 

    </LinearLayout> 
     <LinearLayout 
     android:id="@+id/layout3" 
     android:layout_width="Wrap_Content" 
     android:layout_height="Wrap_Content" 
     android:layout_below="@+id/layout2"> 

    </LinearLayout> 
</RelativeLayout> 

它可能對你有幫助..

+0

我無法使用RelativeLayout,因爲我的所有佈局都是以dinamically添加的,所以如果使用linearlayout,這些佈局將顯示在另一個下方,而不添加任何規則,因爲如果我將使用RelativeLayout,我將不得不這樣做。感謝您的回答 :) –

相關問題