Android RelativeLayout使编辑文本占用所有空间

时间:2012-04-03 16:45:33

标签: android xml layout

我有以下布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/aussie_bg_big" >

<ImageView
    android:id="@+id/titleImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:contentDescription="@null"
    android:src="@drawable/aussie_title_small" />

<ImageView
    android:id="@+id/clearButtonOutput"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/titleImage"
    android:layout_alignParentRight="true"
    android:contentDescription="@null"
    android:src="@drawable/aussie_clear" />

<EditText
    android:id="@+id/OutputText"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_above="@+id/clearButtonOutput"
    android:layout_alignParentLeft="true"
    android:background="@drawable/textbox"
    android:ems="10"
    android:gravity="top"
    android:inputType="textMultiLine"
    android:textColor="#ffffff" />

<ImageView
    android:id="@+id/translateButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/OutputText"
    android:layout_centerHorizontal="true"
    android:clickable="true"
    android:contentDescription="@null"
    android:src="@drawable/translatebuttonselector" />

<ImageView
    android:id="@+id/ClearButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/translateButton"
    android:layout_alignParentRight="true"
    android:contentDescription="@null"
    android:src="@drawable/aussie_clear" />

<EditText
    android:id="@+id/InputText"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_above="@+id/ClearButton"
    android:layout_alignParentLeft="true"
    android:background="@drawable/textbox"
    android:ems="10"
    android:gravity="top"
    android:inputType="textMultiLine"
    android:singleLine="false"
    android:textColor="#ffffff" />

我想做的是:

- &GT;始终将“imageBottom” imageview保留在活动的BOTTOM上,水平居中

- &GT;始终将“imageCenter” imageview保留在活动的中心,水平居中

- &GT;将“imageBelowInputText” imageview保留在 InputText 编辑文字下方,该编辑文字位于 imageCenter 与右侧对齐

- &GT;将“imageBelowOutputText” imageview保留在位于 imageCenter imageBottom 之间的 OutputText 编辑文本下方,对齐到正确的

到目前为止它工作得很好,但我也希望编辑文本视图能够占用所有剩余的空间。考虑到我用dpi硬编码每个edittext的大小,为小型,普通,大型和大型屏幕提供不同版本的布局工作正常。但是,在某些布局上,它看起来仍然有点错误并且放错位置(未对齐)。这就是为什么我正在寻找一个解决方案,首先相应地放置ImageViews,然后让两个EditTexts将剩余的所有空间保持平衡(重要)。

到目前为止,我无法想到100%正确的解决方案。你能帮我吗?谢谢!

2 个答案:

答案 0 :(得分:0)

尝试为每个EditText视图指定高度为0dp,layout_weight值为1.给它一个镜头,让我知道它是否有效。

答案 1 :(得分:0)

注意两个edittexts的layout_height设置为“0dp”,layout_weight设置为“1” XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingTop="15dp"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="Clear" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:text="Bear" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="Clear" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:text="Speaking Aussie" />

</LinearLayout>