android适合面板到底部

时间:2011-11-11 19:49:36

标签: android vertical-alignment

我的表单上有两个按钮,保存并取消。当我转到表单时,键盘会自动显示。 (顺便说一下,Form有一个EditText)。我真的不知道如何将按钮安装到底部。现在按钮放在EditText下面,我想把它们放在键盘上方。

对于想要查看代码的人:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView01" android:layout_width="fill_parent" 
        android:layout_height="fill_parent">

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

        <LinearLayout android:id="@+id/linearLayout1" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"
        android:layout_margin="7dp"
        android:orientation="vertical">

            <EditText 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:id="@+id/etNewListNameForm" 
                android:hint="list name"
                android:layout_marginLeft="1dp"
                android:layout_marginRight="1dp"></EditText>

        </LinearLayout>

        <LinearLayout style="@style/BottomPanel"
            android:id="@+id/linearLayout2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <Button
                android:id="@+id/btnSaveCardList" 
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginTop="5dp"
                android:text="Save"></Button>
            <Button
                android:id="@+id/btnCancelCardLst" 
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_weight="1"
                android:text="Cancel"></Button>

        </LinearLayout>

    </LinearLayout>
</ScrollView>

最好的问候

图片: enter image description here enter image description here

4 个答案:

答案 0 :(得分:2)

你有一个选择是使用相对布局而不是线性,并使用alignParentBottom属性,如下所示:

    <RelativeLayout android:id="@+id/linearLayout1" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:layout_margin="7dp"
    android:orientation="vertical">

        <EditText 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:id="@+id/etNewListNameForm" 
            android:hint="list name"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"></EditText>

    </LinearLayout>

    <LinearLayout style="@style/BottomPanel"
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true">
        .....

编辑:值得注意的是,您应该认真考虑为视图使用更具描述性的名称。您已经为按钮和EditTexts使用了描述性名称,但是对于布局视图使用了linearLayout1和linearLayout2。考虑将它们命名为mainLayout和bottomPannelLayout之类的东西,当你试图弄清楚如何设置它时,它会更容易。

答案 1 :(得分:0)

在包含EditText的LinearLayout中,将android:layout_height更改为0dp并将android:layout_weight设置为1。这样,在按钮面板占据其份额后,它将耗尽父级中的其余空间。

...
    <LinearLayout android:id="@+id/linearLayout1" 
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_margin="7dp"
        android:orientation="vertical">

        <EditText 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:id="@+id/etNewListNameForm" 
            android:hint="list name"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"></EditText>

    </LinearLayout>
...

答案 2 :(得分:0)

  1. 将您的ScrollView包装在RelativeLayout中,
  2. 将LinearLayout与按钮一起移动到RelativeLayout的第二个孩子,
  3. 并为该LinearLayout将android:layout_alignParentBottom设置为true。

答案 3 :(得分:0)

删除不必要的视图并使用relativeLayuot

<?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="#ff0022">


    <LinearLayout android:id="@+id/linearLayout2"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
        <Button android:layout_marginTop="5dp" android:text="Save"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_weight="1" android:id="@+id/btnSaveCardList"></Button>
        <Button android:layout_marginTop="5dp" android:text="Cancel"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_weight="1" android:id="@+id/btnCancelCardLst"></Button>

    </LinearLayout>
    <EditText android:layout_height="wrap_content"
        android:layout_margin="7dp" android:hint="list name"
        android:layout_width="fill_parent" android:id="@+id/etNewListNameForm"
        android:layout_alignParentTop="true" android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp">
        <requestFocus></requestFocus>
    </EditText>
</RelativeLayout>