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

时间:2017-02-09 12:03:40

标签: java android android-recyclerview divider

我有一个包含多种项目类型的回收站视图,我想隐藏选定的分隔符(来自图像)。我目前正在使用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);

enter image description here

1 个答案:

答案 0 :(得分:3)

正如Micha对您的回答发表评论时,您应该在类级别中删除对分隔符的处理,并将其添加到适配器视图中。添加到viewholder xml视图:

|

根据您的喜好水平或垂直,并通过适配器中的条件控制其可见性:

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

特别是对于您的问题,请不要在行的外边缘包含分隔符,并在有标题时隐藏它(&#34; ADVANCED&#34;)或关于元素的时候隐藏它在View tipsDivider = itemView.findViewById(R.id.divider); myViewHolder.divider.setVisibility(View.GONE);

希望能够帮助那些提出这个问题的人。