Android EditText颜色更改会破坏边距

时间:2016-02-26 12:01:35

标签: java android android-layout android-edittext

我有一组以垂直线显示的相对布局的edittexts。默认情况下,它们之间的间隔很小,但我没有任何边距设置。当我更改其中一个的背景颜色时,它的底部边距会丢失,空间会缩短到我认为是它下面的edittext的微小上边距。我尝试使用setPadding(),但没有结果。唯一可行的是setBackground(),但这也会将颜色更改为原始颜色。

2 个答案:

答案 0 :(得分:0)

尝试将xml中的margin设置为Edittexts而不是setPadding。如果您需要通过代码设置边距,则必须修改编辑文本的布局参数。

在XML中设置边距可以解决您的问题。

答案 1 :(得分:0)

这对我有用:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.9">

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="#8A084B"
    android:ems="10" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText1"
    android:background="@android:color/black"
    android:ems="10" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editText3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText2"
    android:background="@android:color/darker_gray"
    android:ems="10" />

它们之间有一些差距:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.9">

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="2dp"
    android:layout_marginTop="2dp"
    android:background="#8A084B"
    android:ems="10" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText1"
    android:layout_marginBottom="2dp"
    android:background="@android:color/black"
    android:ems="10" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editText3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText2"
    android:background="@android:color/darker_gray"
    android:ems="10" />

如果您愿意,可以使用ID和android:layout_alignTop=或底部修复它们。我希望它有所帮助。