LinearLayoutCompat添加分割线divider

作者: _10_01_ | 来源:发表于2019-02-15 16:45 被阅读17次

    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

        本文链接:https://www.haomeiwen.com/subject/uhhmeqtx.html