2017-08-10 145 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);

相關問題