可绘制填充覆盖布局填充

时间:2014-06-02 22:32:18

标签: android android-drawable

我有一个像这样的TextView:

<TextView
   android:id="@+id/friends"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:padding="8dp" />

我设置的背景如下:

textView.setBackgroundResource(R.drawable.background_color);

其中background_color.xml是:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <solid android:color="#217dd2" />
    </shape>
</item>
<item
    android:left="5dip">
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <solid android:color="#deebf6" />
    </shape>
</item>

这将删除我的默认填充8dp,并将其替换为我在分层列表的第2项上声明的5dp左边填充。有什么办法可以避免这个吗或者为视图创建2色背景的另一种方法是什么?

1 个答案:

答案 0 :(得分:1)

该已知问题,setBackgroundResource方法重置填充。 尝试从XML设置背景:

<TextView
   android:id="@+id/friends"
   android:background="@drawable/background_color"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:padding="8dp" />

在这种情况下它会正常工作。