我试图让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没有垂直居中?
答案 0 :(得分:6)
像这样编辑你的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" />
这应该可以解决你的问题,即你使用重力将edittext放在右边,但重力实际上是用来定位视图的内容而不是视图本身。
如果您仍然遇到问题,请发表评论
答案 1 :(得分:5)
android:gravity="center_vertical|right"
表示edittext中的内容将右对齐并位于center_vertical postion
中如果您想要右对齐,可以使用alignParentRight="true"
或toRightOf="id_to_which_it_relate_to"
答案 2 :(得分:2)
您无法仅使用重力对齐RelativeLayout子视图。 尝试使用android:layout_centerVertical =“true”和android:layout_alignParentRight =“true”而不是
答案 3 :(得分:0)
将Button与RelatativeLayout和TextView左侧对齐。将EditText保留在TextView和Button之间。