2013-09-30 113 views
0

我在定位這些視圖時遇到問題。我想要像下面這樣做。我有兩個單選按鈕(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> 
+0

這是不是可以更容易,因爲一個垂直的LinearLayout,包含於各行的水平的LinearLayout? –

+0

同意,linearlayout更容易 –

回答

0

您已經在無線電組內包含了相對佈局,這是主要問題。這就是爲什麼它的行爲如此。刪除廣播組,你的佈局會很好。

下面ID佈局

<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> 

如果你希望他們在單選按鈕,你可以這樣做,但有一件事總是被照顧的是:比賽單選按鈕的高度和相應的視圖在右

<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> 
+0

謝謝,但我的RadioGroup在Relativelayout內,而不是相反。 –

+0

我想保留RadioGroup的原因是隻讓一個選項被選中。 –

+0

讓我爲你嘗試一下 –

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>