2017-08-10 36 views
0

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

+0

创建您自己的装饰器,然后您可以决定何时在onDraw方法中绘制分隔线 – Brian

回答

2

您可以编写自定义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()方法将偏移添加到项目以为分隔线创建空间。

0

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

0
DividerItemDecoration myDivider = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL); 
    divider.setDrawable(ContextCompat.getDrawable(context, R.drawable.cutm_dvdr)); 
    yourRecyclerView.addItemDecoration(myDivider); 

附加cutm_dvdr.xml

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
     <size android:height="1dp" /> 
     <solid android:color="#e20" /> 
    </shape> 
-1

DividerItemDecoration recycleViewDivider =新DividerItemDecoration(上下文,DividerItemDecoration.VERTICAL); recycleViewDivider.setDrawable(ContextCompat.getDrawable(context,R.drawable.recycleview_item_divider));

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

相关问题