У меня есть 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.
Пожалуйста, помогите, поскольку я только начинающий