5

我试图让一个 editText 坐在我的布局的右边缘,左边有一个按钮,如下所示:

  <RelativeLayout
    android:id="@+id/FindClientLayout"
    android:layout_width="@dimen/third_width"
    android:layout_height="@dimen/half_height"
    android:layout_alignParentLeft="false"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="false"
    android:layout_below="@id/HeaderLayout"
    android:layout_margin="@dimen/fragment_separation"
    android:layout_toRightOf="@id/scrollViewRecommend"
    android:background="@drawable/login_border" >

    <TextView
        android:id="@+id/textViewFindClient"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="@string/find_client"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/Black" />

    <EditText 
        android:id="@+id/editTextClient"
        android:layout_width="@dimen/input_text_width"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|right"
        android:inputType="text"/>
    <Spinner
        android:id="@+id/spinnerClientList"
        android:layout_width="@dimen/input_text_width"
        android:layout_height="wrap_content"
        android:layout_below="@id/editTextClient"/>

    <Button
        android:id="@+id/buttonDoFind"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:layout_toLeftOf="@id/editTextClient"
        android:text="@string/find" />
</RelativeLayout>

该按钮是不可见的,结果如下所示:

布局

我假设该按钮是不可见的,因为 editText 是左对齐的并覆盖它或将其推出布局框架。为什么editText和微调器左对齐而不是右对齐?另外,为什么editText没有垂直居中?

4

4 回答 4

8

像这样编辑你的xml文件并检查结果

<TextView
    android:id="@+id/textViewFindClient"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="@string/find_client"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="@color/Black" />

<EditText 
    android:id="@+id/editTextClient"
    android:layout_width="@dimen/input_text_width"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:inputType="text"/>
<Spinner
    android:id="@+id/spinnerClientList"
    android:layout_width="@dimen/input_text_width"
    android:layout_height="wrap_content"
    android:layout_below="@id/editTextClient"/>

<Button
    android:id="@+id/buttonDoFind"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:layout_toLeftOf="@id/editTextClient"
    android:text="@string/find" />

这应该可以解决您的问题,即您正在使用重力将编辑文本放在右侧,但重力实际上用于定位视图的内容而不是视图本身。

如果您仍然遇到问题,请发表评论

于 2013-10-17T10:11:35.170 回答
6
android:gravity="center_vertical|right"

表示edittext中的内容将右对齐并且在center_vertical位置

如果你想右对齐,你可以使用alignParentRight="true"toRightOf="id_to_which_it_relate_to"

于 2013-10-17T10:10:59.857 回答
2

您不能仅将 RelativeLayout 子视图与重力对齐。尝试使用 android:layout_centerVertical="true" 和 android:layout_alignParentRight="true" 代替

于 2013-10-17T10:09:42.320 回答
0

将 Button 对齐到 RelatativeLayout 的左侧,将 TextView 对齐到右侧。将 EditText 保持在 TextView 和 Button 之间。

于 2013-10-17T10:20:01.547 回答