Я хочу реализовать Path-like метку времени для android. Я нашел несколько руководств о том, как реализовать это в ListView, но мне нужно сделать это для RecyclerView с элементами другого размера. Как я могу это сделать?Путь-отметка на прокручиваемой панели
0
A
ответ
0
Мы использовали очень простой и глупый метод для достижения гладкой анимации временной дорожки. Мы игнорируем реальную позицию полосы прокрутки, так как ее трудно получить, и она имеет тенденцию к изменению ее размера и позиции в зависимости от размера контента. В OnScrolled методе RecyclerView мы пересчитали и сбросили поля зрения на основе dy
- прокручивались пиксели amout. Вот то, что код выглядит сейчас:
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy == 0) return;
if (dy < 0) {
if ((botMarg - dy) >= displayHeight - topOffset) {
botMarg = displayHeight - topOffset;
} else {
botMarg -= dy;
}
} else {
if (botMarg - dy <= botOffset) {
botMarg = botOffset;
} else {
botMarg -= dy;
}
}
Чтобы получить текущую позицию, мы использовали метод recyclerView.findChildViewUnder()
с позицией, которую мы получили в OnScrolled.