2017-02-09 382 views
1

我有一个包含多个项目类型的回收站视图,我想隐藏选定的分隔线(从图像)。我目前正在使用DividerItemDecoration进行水平和垂直装饰。使用DividerItemDecoration隐藏recyclerview中的某些项目分隔线

DividerItemDecoration verticalDecoration = new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL); 
verticalDecoration.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider_2dp)); 
DividerItemDecoration horizontalDecoration = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL); 
horizontalDecoration.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider_2dp)); 

mRecyclerView.addItemDecoration(verticalDecoration); 
mRecyclerView.addItemDecoration(horizontalDecoration); 

enter image description here

+1

也许你的分隔线应该是viewholder xml的一部分,所以你可以控制每个项目的分隔符。 – Micha

回答

2

由于米莎对你的解答发表了评论,您应该删除您分隔的处理在类的水平,并在适配器的看法添加。添加到您的viewholder XML视图:

<View 
    android:id="@+id/divider" 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="@color/light_grey"/> 

水平或者根据您的喜好垂直和控制它的知名度,通过一个条件在适配器:

View tipsDivider = itemView.findViewById(R.id.divider); 
myViewHolder.divider.setVisibility(View.GONE); 

特别是你的问题,不包括一个当你有一个标题(“高级”)或当它是关于在position == arraylist.size() - 1;

的元素也隐藏它,希望帮助谁也登陆这个问题。

相关问题