2012-10-17 147 views
2

我對垂直線性佈局中的重量感到困惑。我可以很好地在水平線性佈局中使用重量,但是如何在垂直線性佈局中使用它。我有一個相對佈局,其中包含具有文本視圖和文本字段的內襯布局(垂直)。我需要以下安排。 垂直線性佈局中的重量

紅線=相對佈局,綠線=線性佈局(垂直),藍色= TextView的,黃色= texfields

<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" 
    android:gravity="center" > 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 
    </LinearLayout> 
</RelativeLayout> 
+1

你曾嘗試添加你開發的代碼。 –

+1

在垂直線性佈局設置高度match_parent並設置每個text_view爲1 – Syn3sthete

+0

我用1周的TextView和1個texdfields與水平線性佈局效果很好嘗試的重量,但如果我用更多的意見怎麼辦? – Tanvir

回答

1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" > 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_margin="10dp"> 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 

    </LinearLayout> 
    <LinearLayout 

     android:id="@+id/linearLayout2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 

    </LinearLayout> 
    <LinearLayout 

     android:id="@+id/linearLayout3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText3" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 


    </LinearLayout> 
    <LinearLayout 

     android:id="@+id/linearLayout4" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/editText4" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:ems="10" 
      android:inputType="numberDecimal" /> 


    </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 
+1

Thanx Mukesh bhai,這是我自己猜到的。爲什麼開發者指南沒有明確說明「重量」只適用於水平線性佈局。無論你想要把重量放在水平線性佈局上。 – Tanvir

+1

重量適用於垂直和水平佈局。我已經成功地使用了它。 – Yoda

2

如果您使用的是layout_weigth參數,你應該有相關的參數線性佈局上match_parent取向

這樣:

 android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
+0

匹配家長和填寫家長之間的區別是什麼?我應該在視圖還是佈局上使用上述內容? bcos我讀過,視圖的寬度shud被設置爲0dp,同時使用重量。 – Tanvir

+0

match_parent和fill_parent是相同的。是的,請在textview的 –

+0

上嘗試match_parent如何在像表單這樣的2x3表格中藉助重量(2個視圖的1:2)實現垂直線性佈局中的排列。 – Tanvir

1

-首先你可以直接有這樣的安排在Relative layout沒有使用LinearLayout

-其次,如果你想擁有的Relative layout一個子佈局,那麼它最好使用TableRowRelative layout,並安排元素,只是爲u顯示。

+0

我知道我可以但我只想知道我是否可以做到這一點另一方面,只是爲了學習..我如何實現一個垂直線性佈局與幫助體重(1:2的2個意見)的安排在一個2x3的表格,如 – Tanvir

+0

現在,我認爲我只能使用重量在水平班輪佈局,而不是垂直線性佈局。 – Tanvir

+0

對於這種情況,我會推薦一個'TableLayout'佈局類型。 – Yoda

0

我推薦使用TableLayout這個。如果我有這個權利,你試圖水平地應用權重,所以你有你的LinearLayout定期列。假設這是正確的,那麼你永遠不會這樣做。

LinearLayout排列所有元素水平或垂直的本身。它無法做到這一點。所以在任何情況下你都需要一個獨立的行容器來實現你的目標。

TableLayout不僅設計與內在的行容器,還具有內置的柱支撐只是這種佈局,而不需要重來管理。

0

在我的情況下,在垂直重量問題的小遊戲後,我明白,Android將 環繞ViewGroup的內容,即使您設置了一個更大的重量,它的內容大小它將包裝圍繞內容併爲其他視圖提供額外的空間。

解決方案是添加保證金頂部或底部取決於您的需求。