RecyclerView仅在某些项目之间添加分隔线

时间:2017-08-10 11:07:26

标签: android android-recyclerview

我想在RecyclerView Layout中添加分隔线。我已经搜索了一段时间,但我只能找到利用RecyclerView.addItemDecoration的解决方案,它会在所有项目之间添加分隔符。我可以创建一个只有一行的布局并将其添加到RecyclerView,但这对我来说似乎不是一个优雅的解决方案。

4 个答案:

答案 0 :(得分:4)

您可以编写自定义RecyclerView.ItemDecoration并仅在需要的位置绘制分隔符。并使用以下内容将其设置为RecyclerView

recyclerView.addItemDecoration(new YourItemDecoration());

这是默认的DividerItemDecoration源代码: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview/src/android/support/v7/widget/DividerItemDecoration.java

您可以在onDraw方法中找到分隔符绘制逻辑,其中为所有项目绘制分隔符。您必须根据需要更改该部分,仅为某些项目绘制分隔符。 getItemOffsets()方法为项添加偏移量以为分隔符腾出空间。

答案 1 :(得分:2)

$d

在drawable文件夹中添加cutm_dvdr.xml

DividerItemDecoration myDivider = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL);

myDivider.setDrawable(ContextCompat.getDrawable(context, R.drawable.cutm_dvdr));
yourRecyclerView.addItemDecoration(myDivider);

答案 2 :(得分:0)

您可以在回收站视图行项目布局中添加自定义视图,并设置可见性可见或已在适配器中设置您想要设置的行项目。

答案 3 :(得分:-1)

DividerItemDecoration recycleViewDivider = new DividerItemDecoration(context,DividerItemDecoration.VERTICAL);     recycleViewDivider.setDrawable(ContextCompat.getDrawable(context,R.drawable.recycleview_item_divider));

并将此DividerItemDecoration添加到RecycleView RecyclerView.addItemDecoration(recycleViewDivider);