dra*_*oon 3 android android-recyclerview
我的活动中有一个RecyclerView,并附加了LinearSnapHelper:
TimePickerAdapter timePickerAdapter = new TimePickerAdapter(hours);
recyclerView = (RecyclerView) root.findViewById(R.id.recycler_view);
final SnapHelper snapHelper = new LinearSnapHelper();
snapHelper.attachToRecyclerView(recyclerView);
Run Code Online (Sandbox Code Playgroud)
问题是,当我最初要滚动到特定项目时,不会触发捕捉帮助器来附加该项目(请参见图片):
recyclerView.getLayoutManager().scrollToPosition(timePickerAdapter.getCurrentPosition());
Run Code Online (Sandbox Code Playgroud)
当我用手滚动时,它开始按预期工作。有什么解决办法吗?
小智 6
SnapHelper依靠RecyclerView.OnFlingListener#onFling()或RecyclerView.OnScrollListener#onScrollStateChanged(recyclerView, RecyclerView.SCROLL_STATE_IDLE)触发快速动作。
但是scrollToPosition()不会在回调上面触发。您可以smoothScrollBy(1, 0)在之后调用scrollToPosition()以触发SnapHelper滚动。
我刚刚遇到了同样的问题 - 对我来说使用recyclerView.smoothScrollToPosition(pos)而不是recyclerView.scrollToPosition(pos)做了这个技巧
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |