Нижний интервал ItemDecoration не обновляется при добавлении нового элемента - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть SpacingDecoration для моего рециркулятора, который добавит дополнительный интервал после последнего элемента в списке.

Вот мое украшение интервала

    class SpacingDecoration(val context:Context):RecyclerView.ItemDecoration() {

    private val twelveDp=getPixelValue(12)
    private val seventyDp=getPixelValue(70)

    override fun getItemOffsets(
        outRect: Rect,
        view: View,
        parent: RecyclerView,
        state: RecyclerView.State
    ) {
        val dataCount=parent.adapter!!.itemCount
        val viewPosition=parent.getChildAdapterPosition(view)

        outRect.left=twelveDp
        outRect.right=twelveDp

        when(viewPosition){
            0->{
                outRect.top=twelveDp
                outRect.bottom=twelveDp/2
                return
            }

            dataCount-1 ->{
                outRect.top=twelveDp/2
                outRect.bottom=seventyDp
                return
            }

            else->{
                outRect.top=twelveDp/2
                outRect.bottom=twelveDp/2
            }
        }


    }

    private fun getPixelValue(Dp: Int): Int {

        return TypedValue.applyDimension(
            TypedValue.COMPLEX_UNIT_DIP,
            Dp.toFloat(),
            context.resources.displayMetrics
        ).toInt()

    }

}

Это прекрасно работает.

Но проблема начинается, когда новый элемент добавляется внизу списка.

Я использую DiffUtils для обновления списка.

Когда список обновляется и добавляет новый элемент в список, он добавляет новый элемент после нижнего интервала в семьдесят Dp.

Надеюсь, ты понимаешь мою проблему.

Я хочу добавить последний новый элемент, чтобы расстояние между последним элементом и элементом до его уменьшения уменьшилось до двенадцати Dp.

Пожалуйста, помогите, поскольку я только начинающий

...