Java 使用DividerItemDecoration在recyclerview中隐藏某些项目分隔符

Java 使用DividerItemDecoration在recyclerview中隐藏某些项目分隔符,java,android,android-recyclerview,divider,Java,Android,Android Recyclerview,Divider,我有一个具有多种项目类型的回收器视图,我想隐藏选定的分割器(从图像中)。我目前正在使用DividerItemDecoration进行水平和垂直装饰 DividerItemDecoration verticalDecoration = new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL); verticalDecoration.setDrawable(ContextCompat.getDrawable(

我有一个具有多种项目类型的回收器视图,我想隐藏选定的分割器(从图像中)。我目前正在使用DividerItemDecoration进行水平和垂直装饰

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);

正如Micha对您的答案所评论的那样,您应该删除类级别中对分隔符的处理,并将其添加到适配器视图中。向viewholder xml添加视图:

<View
    android:id="@+id/divider"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@color/light_grey"/>
特别是对于您的问题,不要在行的外边缘包含分隔符,当您有标题(“高级”)或与
位置==arraylist.size()-1处的元素有关时,也不要将其隐藏


希望这对回答这个问题的人也有帮助。

也许您的分隔线应该是viewholder xml的一部分,这样您就可以控制每项分隔符。
View tipsDivider = itemView.findViewById(R.id.divider);
myViewHolder.divider.setVisibility(View.GONE);