2

我希望看到以下布局工作:

--------------------------
| -----------            |
| |TextView1|            |
| -----------            |
| ---------------------- |
| |EditText1           | |
| ---------------------- |
| -----------            |
| |TextView2|            |
| -----------            |
| ---------------------- |
| |EditText2           | |
| ---------------------- |
| -----------            |
| |TextView3|            |
| -----------            |
| ---------------------- |
| |                    | |
| |                    | |
| |                    | |
| |      ImageView     | |
| |                    | |
| |                    | |
| |                    | |
| |--------------------| |
|   --------- --------   |
|   |Button1||Button2|   |
|   --------- --------   |
| ---------------------| |
| |     ButtonBar      | |
| ---------------------- |
|------------------------|

我的问题:我不能让 Button1 和 Button2 在这个布局中工作。它们要么在 ImageView 下方,隐藏在 ButtonBar 后面,要么在 ImageView 底部和 ButtonBar 顶部之间缩小到什么都没有。

当前的 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:orientation="vertical" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/footer" >

    <TextView
        android:id="@+id/textPostUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="user" />

    <EditText
        android:id="@+id/editPostUser"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textPostUser"
        android:hint="user"
        android:maxLength="40" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textPostComment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editPostUser"
        android:text="comment" />

    <EditText
        android:id="@+id/editPostComment"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textPostComment"
        android:hint="comment"
        android:maxLength="200"
        android:maxLines="3" >
    </EditText>

    <TextView
        android:id="@+id/textPostCharacterCount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editPostComment"
        android:text="characters"
        android:textSize="5pt" />

    <ImageView
        android:id="@+id/imagePostResult"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/textPostCharacterCount"
        android:src="@drawable/camera_icon" />

    <Button
        android:id="@+id/buttonPostRotateLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@id/imagePostResult"
        android:text="left" />

    <Button
        android:id="@+id/buttonPostRotateRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@id/imagePostResult"
        android:layout_toRightOf="@id/buttonPostRotateLeft"
        android:text="right" />
</RelativeLayout>

<LinearLayout
    android:id="@+id/footer"
    style="@android:style/ButtonBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/buttonPostSave"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="save" />
</LinearLayout>

</RelativeLayout>

如何使左/右按钮出现在图像视图下方和按钮栏上方?我想至少将 fill_parent 保持在 ImageView 的高度/宽度中,因为它可以在不同的分辨率上很好地缩放。

4

3 回答 3

1

为什么不把两个按钮放在一个水平的 LinearLayout 中?

于 2012-04-08T13:24:34.177 回答
1

您的 ImageView 设置为 fill_parent,因此下面的按钮没有空间了。您可以切换按钮和图像视图,以便在已包含按钮时图像视图占用所有剩余空间:

    <Button
        android:id="@+id/buttonPostRotateLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="left" />

    <Button
        android:id="@+id/buttonPostRotateRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@id/buttonPostRotateLeft"
        android:text="right" />

    <ImageView
        android:id="@+id/imagePostResult"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/buttonPostRotateLeft"
        android:layout_below="@id/textPostCharacterCount"
        android:src="@drawable/camera_icon" />
于 2012-04-08T13:29:38.947 回答
0

您的按钮设置为android:layout_alignParentBottom="true",以及线性布局。后者将隐藏前者,因为它在 xml 代码中位于最后。

尝试将按钮放在线性布局中,并将其对齐到页脚上方android:layout_above="@+id/footer"

于 2012-04-08T13:28:38.747 回答