LinearLayoutCompat添加分割线divider

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动态设置背景

你可能感兴趣的:(LinearLayoutCompat添加分割线divider)