在垂直方向的LinearLayout中对齐TextView和EditText向左对齐

3

我正在使用一个LinearLayout作为视图组,其中包含两个子元素(TextViewEditText)。我的XML代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text View"
        android:textSize="20sp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Edit Text"
        android:textSize="20sp" />

</LinearLayout>

这将产生以下设计:

进入图像描述

如左侧的放大视图所示,TextViewEditText的垂直对齐不同(如小红箭头所示,EditText向右缩进了一点)。

似乎在提示和下划线周围有一些填充(几个dp),防止它们与视图字段的左边缘“接触”。有没有办法强制EditText内的提示紧贴其视图字段的左侧?

除了添加填充和间距之外,我如何消除这种缩进?

感谢任何想法和建议!

5个回答

3

如果不添加任何填充和边距,您可以使用自定义的可绘制对象作为Edittext的背景,以删除默认填充。

在drawable/edittext_bg.xml中实现。

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>

    <item
        android:top="-2dp"
        android:right="-2dp"
        android:left="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#000000" />
        </shape>
    </item>
</layer-list>

现在在你的EditText中使用它:
<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_bg"
        android:hint="Edit Text"
        android:textSize="20sp" />

输出:

enter image description here


0

不应该这样... 你应该检查一下你的style.xml,也许你在那里设置了额外的边距。

另外,尝试指定layout_gravity:"left"属性。


layout_gravity不会改变EditText中提示文本的位置,它会改变整个EditText的位置。 - Jonathan Rhein

0

尝试在编辑文本上键入字母,然后您可以看到文本视图和编辑文本都对齐。


当在EditText中输入内容时,它并不对齐。 - Jonathan Rhein

0
你试过约束布局吗?它可以减少XML布局中的层次结构,使用起来也很容易。

1
使用ConstraintLayout是一样的,因为问题不在于视图组,而在于EditText本身,即提示周围的填充。 - Jonathan Rhein
然后自己制作一个自定义的EditText,移除提示的左填充/边距,问题就解决了 :) - Beemo

0

1
我已经在真实设备和模拟器上运行了它,但缩进仍然存在... - Jonathan Rhein
可以尝试使用TextInputLayout来处理这种情况。 - Thiago Neves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接