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

时间:2017-03-16 15:39:22

标签: android xml android-edittext android-linearlayout

我使用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>

将产生以下设计:

enter image description here

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

似乎在提示周围有一些填充(一些dp),下面的线条阻止它们“触摸”其视野的左边缘。有没有办法强制EditText内的提示挤压到其视野的左侧?

除了添加填充和边距之外,我怎样才能摆脱这种缩进

感谢您的任何想法和建议!

5 个答案:

答案 0 :(得分:2)

如果不添加任何填充和边距,您可以使用自定义drawable作为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>

现在在你的editext中使用它:

<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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

尝试在编辑文本上键入字母,然后您可以看到textview和编辑文本均匀对齐

答案 3 :(得分:0)

你试过Constraint layout吗?它消除了在xml布局中拥有如此多层次结构的需要,并且易于使用。

答案 4 :(得分:0)

此预览,运行模拟器以进行正确预览。 但是,为了获得最佳效果,请使用https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html