ListView 可以很方便的添加分割线,发现线性布局也能很方便的添加分割线。
LinearLayoutCompat 支持 LinearLayout的常用用法,可参考:Android Material Design :LinearLayoutCompat添加分割线divider
(1)app:showDividers="beginning|middle|end"属性。
beginning,middle,end属性值分别指明将在何处添加分割线。
beginning表示从该LinearLayoutCompat布局的最顶一个子view的顶部开始。
middle表示在此LinearLayoutCompat布局内的子view之间添加。
end表示在此LinearLayoutCompat最后一个子view的底部添加分割线。(2)app:divider="@drawable/line"
LinearLayoutCompat添加分割线需要为此分割线定义一个shape。
链接中的方法是XML,记录下代码布局的使用:
public final class Line extends LinearLayoutCompat {
public Line(@NonNull Context context) {
super(context);
// 设置分割线的模式。
setShowDividers(SHOW_DIVIDER_MIDDLE);
// 使用代码定义Shape。
GradientDrawable line = new GradientDrawable();
// 虽然定义的是分割线,但写这句代码将导致颜色不生效。
// line.setShape(GradientDrawable.LINE);
line.setColor(Color.RED);
// 宽高默认值为-1,但修改宽的值不会生效。
line.setSize(-1, 9);
setDividerDrawable(line);
}
}
重点: 虽然定义的是分割线,但设置line.setShape(GradientDrawable.LINE)
将导致颜色不生效。
参考资料:
Android Material Design :LinearLayoutCompat添加分割线divider
Android GradientDrawable动态设置背景
网友评论