2013-10-26 104 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” –