2013-10-26 131 views
0

正如您在這裏所看到的,我創建了4個用黃色,綠色,藍色和紫色圈起來的線性佈局,以區分不同的水平線。我想將所有這些佈局中的4個錨定到主線性佈局的底部,如紅色所示。我正在爲我的問題尋找最簡單的解決方案。也許是一個用於主佈局的RelativeLayout,但是如何將所有4個線性佈局錨定到底部並按此順序堆疊在彼此之上?對不起,不發佈代碼,但所有按鈕的代碼可能會太長。如何將4個線性佈局錨定到線性佈局的底部?

Screenshot

<?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="wrap_content" 
android:background="@drawable/po" 
android:orientation="vertical" > 

<EditText 
    android:id="@+id/txtQuestion" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    /> 

<Button 
    android:id="@+id/btnClear" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:text="Clear" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="fill_vertical" 
    android:orientation="horizontal" 
    android:layout_alignParentBottom="true" 
    android:weightSum="10" > 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="Q" /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="W" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="E" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="R" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="T" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="Y" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="U" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="I" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="O" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="P" 
     /> 

</LinearLayout> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="12dp" 
    android:layout_marginRight="12dp" 
    android:gravity="center" 
    android:orientation="horizontal" 
    android:weightSum="9" > 

      <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="A" /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="S" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="D" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="F" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="G" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="H" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="J" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="K" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="L" 
     /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="horizontal" 
    android:weightSum="10" > 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="Z" /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="X" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="C" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="V" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="B" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="N" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="M" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="," 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="." 
     /> 

    <Button 
     android:layout_weight="1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="\?" 
     /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:baselineAligned="false" 
     android:gravity="bottom|center" 
     android:orientation="horizontal" 
     android:weightSum="100" > 

    <Button 
     android:layout_weight="25" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="Space" 
     /> 

    <Button 
     android:layout_weight="75" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="Bkspc" 
     /> 
</LinearLayout> 
</LinearLayout> 
+0

您需要使用alignParentBottom,使用的RelativeLayout作爲父視圖。如果可能的話,讓我看看你的代碼。 –

+0

@Prince發表。我也想保持txtQuestion和btnClear在頂部。 –

回答

2

您需要按以下方式創建xml。

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

    <LinearLayout 
     android:id="@+id/linear" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <EditText 
      android:id="@+id/txtQuestion" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="5dp" /> 

     <Button 
      android:id="@+id/btnClear" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="5dp" 
      android:text="Clear" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

    <LinearLayout android:gravity="bottom" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_below="@+id/linear" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 

      android:gravity="fill_vertical" 
      android:orientation="horizontal" 
      android:weightSum="10" > 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="Q" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="W" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="E" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="R" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="T" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="Y" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="U" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="I" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="O" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="P" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="12dp" 
      android:layout_marginRight="12dp" 
      android:gravity="center" 
      android:orientation="horizontal" 
      android:weightSum="9" > 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="A" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="S" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="D" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="F" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="G" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="H" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="J" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="K" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="L" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:orientation="horizontal" 
      android:weightSum="10" > 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="Z" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="X" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="C" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="V" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="B" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="N" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="M" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="," /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="." /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:text="\?" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:baselineAligned="false" 
      android:gravity="bottom|center" 
      android:orientation="horizontal" 
      android:weightSum="100" > 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="25" 
       android:text="Space" /> 

      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="75" 
       android:text="Bkspc" /> 
     </LinearLayout> 
    </LinearLayout> 

</RelativeLayout> 

OUTOUT:

enter image description here

+0

它保持頂部btnClear和txtQuestion並帶走所有的按鈕,就好像它們關閉屏幕。 –

+0

@GarrenFitzenreiter查看我更新的答案。 –

+0

美麗!謝謝:-D –

2

使用的RelativeLayout作爲父Layout.Then使用alignParentBottom屬性設置在底部的所有佈局。

+0

要保持它們在頂部使用alignParentTop = true爲您的TextView 和btnclear使用alignLayoutBelow =「@ + id/txtViewId」 –