从 recyclerView 网格布局管理器中删除最后一项装饰

问题描述

我有一个带有 recyclerViewGridLayoutManager,我想在垂直水平模式下删除最后一个分隔线

enter image description here

我尝试将 empty 设置为 outRect 中的最后一个位置,但它对我不起作用。

outRect.setEmpty()

我有一个像这样的 extension fun :

fun RecyclerView.addItemdecorationWithoutLastDivider(orientation:Int) {

    addItemdecoration(object :
        DividerItemdecoration(context,orientation) {

        override fun getItemOffsets(outRect: Rect,view: View,parent: RecyclerView,state: RecyclerView.State) {
            super.getItemOffsets(outRect,view,parent,state)

            if (parent.getChildAdapterPosition(view) == state.itemCount - 1)
                outRect.setEmpty()
            else
                super.getItemOffsets(outRect,state)
        }
    })
}

在这里设置了 recyclerView

recyclerView.apply {
    adapter = mBanklistadapter
    layoutManager = GridLayoutManager(requireContext(),3,RecyclerView.VERTICAL,false)

    addItemdecorationWithoutLastDivider(DividerItemdecoration.VERTICAL)
    addItemdecorationWithoutLastDivider(DividerItemdecoration.HORIZONTAL)

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)