1

RelativeLayout如何完全widget填充另一个的左边界和右边界之间的parent空间widget

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/vsname"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/seticonimage"
        android:hint="@string/entername"
        android:inputType="text" />

    <EditText
        android:id="@+id/vsdesc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/vsname"
        android:layout_toLeftOf="@+id/seticonimage"
        android:hint="@string/shrtdesc"
        android:inputType="text" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/vsdesc"
        android:layout_toLeftOf="@+id/seticonimage"
        android:prompt="@string/icon_prompt" />

    <ImageView
        android:id="@+id/seticonimage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_below="@+id/vsdesc"
        android:adjustViewBounds="true"
        android:contentDescription="@string/description"
        android:scaleType="fitStart"/>

     <TextView
        android:id="@+id/memmory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/seticonimage"
        android:text="1000 MB"
        android:textStyle="bold" />
</RelativeLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="96dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="3dp" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/cache"
            android:textSize="16dp" />

        <NumberPicker
            android:id="@+id/cache_size_picker"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="95dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="3dp" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/data"
            android:textSize="16dp" />

        <NumberPicker
            android:id="@+id/data_size_picker"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="96dp"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:padding="3dp" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/system"
            android:textSize="16dp" />

        <NumberPicker
            android:id="@+id/system_size_picker"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>

我想@id/memmory填充其父级的右边框和@id/spinner.

 ---------------------------------------------
|                           |                 |
|                           |                 |
|                           |                 |
|                           |    ImageView    |
|       Stuff               |                 |
|                           |                 |
|                           |                 |
|                           |-----------------
|                           |    TextView     |
----------------------------------------------
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                   Stuff                     |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
|                                             |
 ---------------------------------------------

这就是它的样子,注意 TextView 是居中对齐的。我尝试将 compundDrawable 用于 textview,但遗憾的是,当我膨胀我的对话框时它没有出现。

4

2 回答 2

0

一个相对布局内的所有东西在获得这样一个屏幕时会更好,

图片 - 父顶部 - 真,父右 - 真,垂直居中 - 真,布局宽度和高度 - wrapcontent

文本视图 - 布局下方 - 图像,左对齐 - 图像,右对齐 - 图像,布局宽度和高度 - wrapcontent

东西 1 - 顶部对齐 - 图像,底部对齐 - 文本视图,左侧 - 图像,布局宽度和高度 - wrapcontent

stuff2 - stuff1 的底部,布局宽度和高度 - 填充父级

于 2012-04-25T11:48:00.653 回答
0

我删除ImageView并添加android:drawableTop属性到TextView. 这按预期工作。

<!--    <ImageView
        android:id="@+id/seticonimage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:contentDescription="@string/description"
        android:scaleType="fitStart"
        android:src="@drawable/cm7_icon" /> -->

    <TextView
        android:id="@+id/icon_and_memory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:drawableTop = "@drawable/cm7_icon"
        android:gravity="center_horizontal"
        android:text="1000 MB"
        android:textStyle="bold" />
于 2012-04-25T13:29:08.247 回答