layout.xml:
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity">
<TextView android:text="Label text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:text="Input tex"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
在Lollipop前和Lollipop设备上制作以下图片
如何补偿EditText
的不必要填充?
我会添加android:paddingLeft
来标记TextView,但我不知道应该指定哪个值。
答案 0 :(得分:2)
Theme.AppCompat
使用@drawable/abc_edit_text_material.xml
作为EditText
背景。从消息来源我看到它是InsetDrawable
。 InsetDrawable
拥有自己的“填充” - @dimen/abc_control_inset_material
。为了补偿这些填充,我将android:paddingLeft="@dimen/abc_control_inset_material"
添加到标签的TextView
。
<TextView android:text="Label text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/abc_control_inset_material"/>
我不确定这是否是最终答案,因为它没有记录。
答案 1 :(得分:0)
在不同的值-XY文件夹中创建多个 dimens.xml 文件,其中XY是API级别,即:18
。
实际值取自该文件:android:paddingRight="@dimen/...
如果您想使用API级别 - 默认值,则:
在SDK文件夹中,对于每个API级别,您将在values文件夹中找到dimens文件。
获取每个文件并将它们复制到不同的值文件夹中。