我想为android实现Path-like时间标记。我找到了一些关于如何在ListView上实现它的指南,但我需要为其中包含不同大小的项目的RecyclerView执行此操作。 我怎么能这样做?
答案 0 :(得分:0)
我们使用非常简单和愚蠢的方法来实现时间路径标记的平滑动画。我们忽略滚动条的实际位置,因为它很难获得,并且它倾向于根据内容大小大幅改变它的大小和位置。
在RecyclerView的OnScrolled方法中,我们根据dy
重新计算并重置了视图边距 - 滚动了多个像素。以下是现在的代码:
@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中获得的位置。