Кнопка в Relativelayout была растянута

В основном я хочу добавить textView, spinner и кнопку в этом относительном макете. Похоже:

---- TextView ----

----- вертушка ----

------------ button--

Проблема в том, что кнопка внизу справа растянута, высота кнопки занимает все остальное пространство.

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/surveyLayout" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent">
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="20dp"
    android:layout_alignParentTop="true"
    android:text="@string/selectSurvey"
    android:textColor="@android:color/darker_gray"
    android:id="@+id/hasSurveyLabel"
    />
<Spinner
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:id="@+id/surveySpinner"
    android:layout_below="@+id/hasSurveyLabel"
    />
<Button
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:id="@+id/startButton"
    android:text="@string/start"
    **android:layout_below="@+id/surveySpinner"**
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:paddingTop="10dp"
    android:paddingLeft="30dp"
    android:paddingRight="30dp"
    />

Похоже, это из-за layout_below, когда мы используем layout_below, кнопку под вращателем, она должна быть чуть ниже нее, без пробела, если вы ее не определите.
Как мы можем решить эту проблему?
То, что я ожидаю, это поместить кнопку под спиннер и внизу экрана.
Я боролся с этим в течение многих дней, любая помощь? Благодарю.

2 ответа

Решение

Я бы удалил ссылку на счетчик и просто поместил бы ее внизу справа. У меня похожий макет экрана, и следующие настройки кнопок работают для меня.

<Button
   android:id  ="@+id/testButton"
   android:text="Testing"
   android:layout_width ="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentBottom="true"
   android:layout_alignParentRight ="true"  /> 

В качестве альтернативы то, что я видел, сделало это, чтобы обернуть в LinearLayout, который размещен внизу. Но расслоение кажется мне ненужным. Надеюсь это поможет!

   <LinearLayout
      android:orientation  ="horizontal"
      android:layout_width ="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_alignParentRight ="true">

      <Button
         android:id  ="@+id/testButton"
         android:text="Testing"
         android:layout_width ="wrap_content"
         android:layout_height="wrap_content"  />

   </LinearLayout>

Растягивается только высота? Если так, то я бы удалил android:layout_alignParentBottom="true" и только позвольте ему ссылаться на Spinner и выровнять его по правой стороне...

Другие вопросы по тегам