我正在尝试控制collpasingtoolbarlayout的快照滚动标志的滚动行为。根据本教程link SCROLL_FLAG_SNAP:滚动结束时,如果视图仅部分可见,则它将被捕捉并滚动到它的最近边缘。我想要实现的是使Snap Behavior仅在从1到1的方向上工作。这意味着如果该视图距离上边缘很近并且用户从底部滚动,则它应该在此原因中正常工作。否则,如果用户从上到下滚动它应该什么也不做。
这是Google的圣诞老人应用程序的GIF,我正试图实现相同的行为。
答案 0 :(得分:1)
以下是a link之前发布的支持快照滚动标记的帖子,其中包含重新创建相同行为的代码。您可以修改此自定义行为以满足您的需求。
在该代码中,您将找到以下部分,您需要针对“接近顶部或底部”逻辑进行编辑:
if (topOffset < -(scrollRange / 2f)) { //Close to top
// Snap up (to fully invisible)
animateOffsetTo(-scrollRange);
} else { //Close to bottom
// Snap down (to fully visible)
animateOffsetTo(0);
}
您还需要包含逻辑,以将滚动开始时的偏移量与滚动停止时的偏移量进行比较,以确定滑动方向。
祝你好运!