Я написал два ItemDecorator
для RecyclerView
. Каждый добавляет некоторое верхнее смещение в getItemOffsets()
. Пусть говорят:
- Первый декоратор добавляет верхнее смещение 20dp
- Второй декатор добавляет верхнее смещение 30dp
Теперь, когда я добавляю оба из них в RecyclerView
, каждый элемент правильно смещается на 50dp, это хорошо.
Но вот возникает вопрос:
Как получить это смещение в onDraw
/onDrawOver
?
Обычно декораторы рисуют свои вещи, перемещая вещи parent.getChildAt(i)
и получая child.getTop()
, например, чтобы рисовать над дочерним видом RecyclerView
.
Но в этом случае это приведет к смешению рисунка другого декоратора, потому что он также будет использовать child.getTop()
.
Итак, на данный момент кажется, что оба декоратора должны знать друг о друге и друг о друге.
Я что-то упустил? Надеюсь, я.
РЕДАКТИРОВАТЬ: Я сообщил о проблеме на трекер для Android, и, похоже, это будет сработано. Звезда, чтобы отслеживать прогресс: https://code.google.com/p/android/issues/detail?id=195746