RecyclerView-FlexibleDivider:基于 Android 的 RecyclerView 分割线控制库项目

Android library providing simple way to control divider items (ItemDecoration) of RecyclerView

分支1Tags15
当前项目代码仓暂无内容

RecyclerView-FlexibleDivider

Android Arsenal License Download

这是一款Android库,提供了简单的方式来控制RecyclerView中的分隔线。

更新日志

更新日志

Gradle 集成

在你的build.gradle文件中添加以下代码:

repositories {
    jcenter()
}

dependencies {
    implementation 'com.yqritc:recyclerview-flexibledivider:1.4.0'
}

使用方法

以下是基础用法,将在每个单元格之间绘制从 android.R.attr.listDivider 获取的分隔线。

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this).build());
分类装饰器 使用场景
HorizontalDividerItemDecoration 用于垂直布局方向,画水平分隔线
VerticalDividerItemDecoration 用于水平布局方向,画垂直分隔线

注意:每次只能设置上述分类装饰器之一。

如果需要设置颜色、大小和外边距,可以这样操作:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.addItemDecoration(
        new HorizontalDividerItemDecoration.Builder(this)
                .setColor(Color.RED)
                .setSizeResId(R.dimen.divider)
                .setMarginResId(R.dimen.leftmargin, R.dimen.rightmargin)
                .build());

你也可以直接使用Paint对象来设置:

Paint paint = new Paint();
paint.setStrokeWidth(5);
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
paint.setPathEffect(new DashPathEffect(new float[]{25.0f, 25.0f}, 0));
recyclerView.addItemDecoration(
        new HorizontalDividerItemDecoration.Builder(this).paint(paint).build());

此外,还可以使用9宫格图像来绘制分隔线:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this)
        .drawable(R.drawable.sample)
        .size(15)
        .build());

如果你想根据位置定制分隔线,可以实现以下接口:

提供者列表

你可以实现以下提供者,并对每个单元格之间的分隔线进行控制。关于这些提供者的详细用法,请参考示例代码中的ComplexAdapter类。

  • ColorProvider
    为分隔线提供颜色。

  • PaintProvider
    为分隔线提供绘制的对象。

  • DrawableDivider
    为分隔线提供图象对象。

  • SizeProvider
    为水平分隔线提供高度,为垂直分隔线提供宽度。

  • VisibilityProvider
    可以控制分隔线的可见性。

  • MarginProvider(用于水平分隔线,即垂直列表)
    允许指定分隔线的左右外边距。

  • MarginProvider(用于垂直分隔线,即水平列表)
    允许指定分隔线的上下外边距。

对于GridLayoutManager,上述提供者的position参数是项的组索引。 因此,应基于[组索引](http://developer.android.com/intl/ja/reference/android/support/v7/widget/GridLayoutManager.SpanSizeLookup.html#getSpanGroupIndex(int, int))而不是项的位置来控制分隔线。

可选配置

  • Builder.showLastDivider
    是否在RecyclerView的最后一项后面绘制分隔线。 启用此选项后,上述提供者的position参数范围为0到itemCount-1。 否则,范围为0到itemCount-2。

  • Builder.positionInsideItem
    让分隔线在项目内部绘制。 若要遵循材料设计指南,请开启这个功能。

注意事项

  • 如果没有设置颜色、Paint或图象,则默认会使用android.R.attr.listDivider的分隔线。
  • 当设置Paint时,必须使用paint类的setColor和setStrokeWidth方法。
  • 如需使用DashPathEffect,请注意以下问题:Issue Link

想自定义ItemDecoration以实现在GridLayoutManager下的等宽列间距吗?

查看https://gist.github.com/yqritc/ccca77dc42f2364777e1

许可证

版权所有 2016 yqritc

根据Apache许可证2.0版授权("许可");
您不得使用本文件,除非遵守该许可。
您可以从以下链接获得许可的副本:

   http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,软件
根据许可分发是按“原样”提供的,
不提供任何形式的保修或条件。
参阅许可文本来了解特定的
许可权限和限制的详情。

项目介绍

Android 库,提供了一种简单的方法来控制RecyclerView中分隔线项(ItemDecoration)。【此简介由AI生成】

定制我的领域
462.38 K394访问 GitHub