将微调器对齐到编辑文本的右侧

Align spinner to the right of edit text

我希望 spinner 显示在 editext view 的右侧。

当我尝试下面的代码时,只出现了编辑文本,而微调器完全消失了。我尝试了很多东西,但没有任何效果。

<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:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
tools:context=".MyActivity">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/linearlayout1"
android:orientation="horizontal">

   <android.support.design.widget.TextInputLayout
    android:id="@+id/text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
       <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:textSize="20dp"
        android:hint="Duration"
        android:layout_gravity="left"
        android:gravity="center"
        android:layout_marginTop="20dp"
        />
    </android.support.design.widget.TextInputLayout>
       <Spinner
       android:id="@+id/spinner"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="20dp"
       android:layout_gravity="right"
       />
</LinearLayout>
<Button
    android:id="@+id/startAlarm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/linearlayout1"
    android:layout_marginBottom="20dp"
    android:text="Start Alarm Service" />
<Button
    android:id="@+id/stopAlarm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/startAlarm"
    android:layout_marginBottom="20dp"
    android:text="Stop Alarm" />
 </RelativeLayout>

如何解决这个问题?

通过将容器 LinearLayoutwidth 设置为 "match_parent" 并设置 TextInputLayoutwidth & weight & Spinner0dp & 50 (分别),你会得到你想要的布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearlayout1"
    android:orientation="horizontal"
    android:gravity="bottom"
    android:layout_marginBottom="20dp">

    <android.support.design.widget.TextInputLayout
        android:id="@+id/text_input_layout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="50">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/editText"
            android:textSize="20dp"
            android:hint="Duration"
            android:layout_gravity="left"
            android:gravity="center"
            />
    </android.support.design.widget.TextInputLayout>
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_weight="50"
        />
</LinearLayout>
<Button
    android:id="@+id/startAlarm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/linearlayout1"
    android:layout_marginBottom="20dp"
    android:text="Start Alarm Service" />
<Button
    android:id="@+id/stopAlarm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/startAlarm"
    android:layout_marginBottom="20dp"
    android:text="Stop Alarm" />

我也希望能够弄清楚带下划线的错误也将字段向上推,但 TextInputLayout 似乎只是这样做,因为它是这样设计的:-(