1

I have a recyclerView with GridLayoutManager i want to remove last divider in vertical and horizontal mode.

enter image description here

I tried to set empty to last position in outRect but it does not work for me.

outRect.setEmpty()

I have an extension fun like this :

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, view, parent, state)
        }
    })
}

I set up recyclerView here :

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

    addItemDecorationWithoutLastDivider(DividerItemDecoration.VERTICAL)
    addItemDecorationWithoutLastDivider(DividerItemDecoration.HORIZONTAL)

}
Andrew Thompson
  • 168,117
  • 40
  • 217
  • 433
milad salimi
  • 1,580
  • 2
  • 12
  • 31
  • https://stackoverflow.com/questions/46215810/recyclerview-remove-divider-decorator-after-the-last-item – ADM Feb 21 '21 at 12:24

0 Answers0