java - 使用 DividerItemDecoration 隐藏 recyclerview 中的一些项目分隔线

标签 java android android-recyclerview divider

我有一个包含多种项目类型的回收器 View ,我想隐藏选定的分隔线(从图像中)。我目前正在使用 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

最佳答案

正如 Micha 对您的答案的评论,您应该删除类级别中对分隔线的处理并将其添加到适配器 View 中。将 View 添加到您的 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;

希望对解决这个问题的人也有帮助。

关于java - 使用 DividerItemDecoration 隐藏 recyclerview 中的一些项目分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42136262/

相关文章:

android - 如何在 Kotlin 中实现一个可以处理不同大小单元格的回收器 View ?

java - 未能找到提供商信息 Android

Java CSV 编码

android - 在 Android 上运行的 Metasploit 框架

android - 尝试读取字段 'android.view.View android.support.v7.widget.RecyclerView$ViewHolder.itemView'

android - RecyclerView 不会显示任何数据

java - 使用 jLink + jPackage 创建 .exe 后无法连接到本地 MySQL 数据库

Java 基准测试工具

android - 如何在长按按钮时发送字符流

android - Volley ClientError 意外响应代码 404