我已经使用LinearSnapHelper实现了一个水平的recyclelerView,以实现选择特定配置的UI输入.有点像旧学号码选择器/选择器或旋转器.中心的项目是选定的位置.
它工作得很好,所有,但这是问题所在.在初始启动时,我需要以编程方式设置回收器视图的位置,以便所选项(其索引从磁盘加载)位于中心位置.
.scrollToPosition() 不会工作,因为它将所选项目放在开头.
现在我知道我可以做所有的数学运算并计算x坐标并手动设置它,但这就是很多冗余的工作,因为LinearSnapHelper已经这样做了,我觉得应该有一种方法来重用那个逻辑,但是实际上发起了一场狂欢.
我需要类似的东西 LinearSnapHelper.snapToPosition()
我的活动中有一个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)
当我用手滚动时,它开始按预期工作。有什么解决办法吗?