0

我的RelativeLayout.

我将 6 个并排放置Views,它可以工作。

我遇到的问题是EditTexts. 当我将它们的宽度设置为wrap_content它们时,它们太小了。

当我将它们设置为它们时,match_parent它们会占据整个宽度(它们覆盖另一个)而不是调整到它们旁边Views的边缘。Views

所以我的问题是如何在不给它们静态宽度的情况下使它们适合?

这是我的代码:

<RelativeLayout
    android:id="@+id/relativelayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="text 1" />

    <EditText
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tv1"
        android:singleLine="true" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/et1"
        android:text="text 2" />

    <EditText
        android:id="@+id/et2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tv2"
        android:singleLine="true" />

    <TextView
        android:id="@+id/tv3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/et2"
        android:text="text 3" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/tv3" />

</RelativeLayout>
4

2 回答 2

4

试试下面的代码。

如果您希望盒子的大小略有不同,则需要应用静态大小或稍微调整权重以获得所需的正确空间。

但是,我建议实际上稍微改变一下布局。将它们全部放在同一条线上似乎有些混乱。除非这是横向模式。那么可能就没事了。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativelayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="text 1" />

    <EditText
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:singleLine="true" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="text 2" />

    <EditText
        android:id="@+id/et2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:singleLine="true" />

    <TextView
        android:id="@+id/tv3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="text 3" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_toRightOf="@+id/tv3" />

</LinearLayout>

生成的布局图片:

在此处输入图像描述

于 2012-07-16T17:11:42.387 回答
1

使用相对布局,您需要令人满意的包装内容或静态尺寸。如果我理解得很好,您希望编辑文本填充屏幕宽度的剩余部分。您必须使用 LinearLayout 和android:layout_weight属性 -您可以在此处找到示例

<LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation:"horizontal">
        <TextView
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:text="text 1" />

        <EditText
        android:id="@+id/et1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:singleLine="true"/>

        <EditText
        android:id="@+id/et2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:singleLine="true" />

        <TextView
        android:id="@+id/tv3"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="text 3" />

        <Spinner
        android:id="@+id/spinner1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" />

</LinearLayout>
于 2012-07-16T17:22:47.070 回答