相对布局定位没有按预期工作

时间:2013-09-30 15:46:02

标签: android android-layout

我无法定位这些视图。我想在下面做。我有两个单选按钮(rb_),第一个收音机旁边有一个编辑文本(et_),第二个收音机旁边有一个可展开列表视图(lv_)。

enter image description here

我尝试了以下代码,但无法达到我想要的效果,et_new_trip被推到另一条线而不是rb_create_new的右边,lv_old_trip根本没有显示。知道为什么吗?感谢。

<RelativeLayout android:id="@+id/rl_trip"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true">

    <RadioGroup android:id="@+id/rg_trip_creation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
    >
        <RadioButton android:id="@+id/rb_create_new"
                     style="@style/WrapContentWidthHeight"
                     android:text="New trip"/>
        <EditText android:id="@+id/et_new_trip"
                  android:layout_height="30dp"
                  android:layout_width="200dp"
                  android:layout_toEndOf="@+id/rb_create_new"
                  android:layout_alignBottom="@+id/rb_create_new"
                  android:text="New Trip name"/>

        <RadioButton android:id="@+id/rb_old_trip"
                     android:layout_height="30dp"
                     android:layout_width="200dp"
                     android:text="Previous trip"/>
        <ExpandableListView
            android:id="@+id/lv_old_trip"
            android:layout_height="30dp"
            android:layout_width="200dp"
            android:layout_alignBottom="@+id/rb_old_trip"
            android:layout_toEndOf="@+id/rb_old_trip"
            />

    </RadioGroup>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您已在Radio Group中包含相对布局,这是主要问题。这就是为什么它的表现如此。删除无线电组,您的布局就可以了。

下面是你的布局

  <RelativeLayout
        android:id="@+id/rl_trip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="30dp" >

        <RadioButton
            android:id="@+id/rb_create_new"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="New trip" />

        <EditText
            android:id="@+id/et_new_trip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toEndOf="@+id/rb_create_new"
            android:layout_toRighttOf="@+id/rb_create_new"
            android:text="New Trip name" />

        <RadioButton
            android:id="@+id/rb_old_trip"
            android:layout_width="150dp"
            android:layout_height="30dp"
            android:layout_below="@+id/rb_create_new"
            android:text="Previous trip" />

        <ExpandableListView
            android:id="@+id/lv_old_trip"
            android:layout_width="200dp"
            android:layout_height="30dp"
            android:layout_alignBottom="@+id/rb_old_trip"
            android:layout_toEndOf="@+id/rb_old_trip" />
    </RelativeLayout>

如果你想在Radio Button中使用它们,你可以这样做,但有一点需要注意的是:匹配单选按钮的高度和右边的各个视图

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <LinearLayout
        android:id="@+id/rl_trip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >

        <RadioGroup
            android:id="@+id/rg_trip_creation"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
             android:layout_weight="1" >

            <RadioButton
                android:id="@+id/rb_create_new"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:text="New trip" />

            <RadioButton
                android:id="@+id/rb_old_trip"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:text="Previous trip" />
        </RadioGroup>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/et_new_trip"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:text="New Trip name" />

            <ExpandableListView
                android:id="@+id/lv_old_trip"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:layout_alignBottom="@+id/rb_old_trip"
                android:layout_toEndOf="@+id/rb_old_trip" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >   
    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <RadioButton
                android:id="@+id/radioButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_marginTop="75dp"
                android:text="RadioButton" />

            <RadioButton
                android:id="@+id/radioButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/radioButton1"
                android:layout_marginTop="30dp"
                android:text="RadioButton" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@id/radioButton1"
                android:layout_toRightOf="@id/radioButton1"
                android:hint="et_new" />

            <ExpandableListView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignTop="@id/radioButton2"
                android:layout_toRightOf="@id/radioButton2" >

            </ExpandableListView>
        </RelativeLayout>
    </RadioGroup>
</RelativeLayout>