将文本视图垂直居中于 EditText

发布于 2024-10-07 10:37:52 字数 784 浏览 3 评论 0原文

我想做的是有一个 TextView,在它的右侧有一个 editText 占据剩余的空间。 textView 应沿 editText 垂直居中。现在我可以使用线性布局来做到这一点,但我更喜欢在相对布局中做到这一点。

<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:padding="10dp">
     <TextView
          android:id="@+id/loginText"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Login:"
          android:paddingRight="20dp" />

<EditText
          android:id="@+id/login"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@id/loginText" />

</RelativeLayout>

What I'm trying to do is have a TextView, and to the right of it an editText that takes up the rest of the space. The textView should be centered vertically along the editText. Now I can do this using an linearlayout, however I would prefer to do it in a relativelayout.

<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:padding="10dp">
     <TextView
          android:id="@+id/loginText"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Login:"
          android:paddingRight="20dp" />

<EditText
          android:id="@+id/login"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@id/loginText" />

</RelativeLayout>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡忘如思 2024-10-14 10:37:52

您想要做的事情可以通过使用 android:layout_alignBottom< code>android:layout_alignTopRelativeLayout 为其子级和 TextViewandroid:gravity 属性。

这些属性允许您设置视图的底部/顶部边缘以匹配另一个视图的底部/顶部边缘。通过将它们应用到 TextView,您可以有效地使 TextViewEditText 控件的高度相匹配。然后,使用重力属性,您可以使 TextView 中的文本在 TextView 控件内垂直居中。

以下示例应该按您的预期工作:

<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:padding="5dp" >
    <TextView android:id="@+id/user_name_label"
        android:text="@string/user_name"
        android:layout_width="wrap_content"
        android:layout_height="0dp" 
        android:layout_alignBottom="@+id/user_name_text"
        android:layout_alignTop="@id/user_name_text"
        android:layout_marginRight="5dp"
        android:gravity="center_vertical" />
    <EditText android:id="@id/user_name_text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/user_name_label" />
</RelativeLayout>

What you want to do is possible by using the android:layout_alignBottom and android:layout_alignTop properties provided by the RelativeLayout to its children and the android:gravity property of the TextView.

These properties allow you to set the bottom/top edge of a view to match the bottom/top edge of another view. By applying them to the TextView you can effectively make the TextView match the height of the EditText control. Then, with the gravity property you can make the text in the TextView center vertically inside the TextView control.

The following example should work as you intended:

<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:padding="5dp" >
    <TextView android:id="@+id/user_name_label"
        android:text="@string/user_name"
        android:layout_width="wrap_content"
        android:layout_height="0dp" 
        android:layout_alignBottom="@+id/user_name_text"
        android:layout_alignTop="@id/user_name_text"
        android:layout_marginRight="5dp"
        android:gravity="center_vertical" />
    <EditText android:id="@id/user_name_text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/user_name_label" />
</RelativeLayout>
白衬杉格子梦 2024-10-14 10:37:52

android:layout_gravity="center_vertical" 添加到您的 Textview

这会将 textview 垂直居中放置在父级中


add android:layout_gravity="center_vertical" to your Textview

this would place the textview centered vertically in the parent


~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文