我使用LinearLayout
作为视图组,其中包含两个孩子(TextView
和EditText
)。我的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>
将产生以下设计:
如左侧的放大视图中所示,TextView
和EditText
不是垂直对齐的(EditText
缩进了一点,如小红色箭头所示)
似乎在提示周围有一些填充(一些dp
),下面的线条阻止它们“触摸”其视野的左边缘。有没有办法强制EditText
内的提示挤压到其视野的左侧?
除了添加填充和边距之外,我怎样才能摆脱这种缩进?
感谢您的任何想法和建议!
答案 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" />
输出:
答案 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