今天需要设置listview的divider,这个divider是带边距的。
一开始想使用一个view做边距,但是需要控制这个view的显示,还要改adapter,很麻烦。
其实listview的divider就可以做到。
但是这个divider是要带边距的,咋整!!!
后来在stackoverflow上找到了答案,工程师的福地啊!!!
http://stackoverflow.com/questions/14054364/how-to-assign-padding-to-listview-item-divider-line
http://stackoverflow.com/questions/11096304/listview-divider-margin
http://stackoverflow.com/questions/8010072/how-to-set-width-of-listview-divider
<inset>
drawable/list_divider.xml
<inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetLeft="10dp" android:insetRight="10dp" > <shape android:shape="rectangle" > <solid android:color="@color/list_divider_color" /> </shape> </inset>
And in your layout:
<ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" android:divider="@drawable/list_divider" android:dividerHeight="1dp" > </ListView>
主要就是使用了insetdrawable,InsetDrawable 表示一个drawable嵌入到另外一个drawable内部,并且在内部留一些间距,这一点很像drawable的padding属性,区别在于 padding表示drawable的内容与drawable本身的边距,insetDrawable表示两个drawable和容器之间的边距。当控件需要的背景比实际的边框小的时候比较适合使用InsetDrawable。
具体见这篇文章http://blog.csdn.net/lonelyroamer/article/details/8244607