2015-12-08 78 views
2

我希望微调框显示在editext视图的右侧。
将微调器对齐编辑文本的右侧

当我试着下面的代码,只有编辑文本出现和微调完全消失。我尝试了很多东西,但都没有成功。

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

如何解决这个问题?

回答

4

通过设置其容器LinearLayoutwidth为 “match_parent” &设置的TextInputLayout &的width & weightSpinner0dp & 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" /> 

Result

+0

感谢方式它与右边对齐。但是当我在应用程序中看到微调器略高于editText时。我的意思不是直线 – user305774

+0

删除您在“TextInputLayout”上设置的边距。检查我的编辑。 –

+0

真棒,它的工作。其实你做了什么? – user305774

0

我希望能够找出下划线的错误推场了太多,但它似乎像TextInputLayout只是这样做,因为这是它被设计:-(