繁体   English   中英

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

[英]Hide some item dividers in recyclerview using DividerItemDecoration

我有一个具有多个项目类型的回收站视图,我想隐藏选定的分隔线(从图像中)。 我目前正在将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在回答您的答案时所说的那样,您应该在类级别上删除对分隔符的处理,并将其添加到Adapter视图中。 将一个视图添加到您的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);

特别是对于您的问题,不要在行的外边缘包括分隔线,并且当您拥有标题(“ ADVANCED”)或当元素位于position == arraylist.size() - 1;时,也不要隐藏分隔线position == arraylist.size() - 1;

希望对任何人也有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM