我正在尝试用3个无尽的ListView实现一个槽机。我想用滚动视图做到这一点,但我没有找到在scrollView上循环的解决方案。
所以基本上我的老虎机有三个listview = 3列,当我点击按钮时我想滚动到一个随机位置(0(含)和300(独占)之间的随机整数,这是我的列表大小) :
Random r = new Random();
int rPos1 = r.nextInt(300 - 0) +0;
int rPos2 = r.nextInt(300 - 0) + 0;
int rPos3 = r.nextInt(300 - 0) +0;
listSlotOne.smoothScrollToPosition(rPos1);
listSlotTwo.smoothScrollToPosition(rPos2);
listSlotThree.smoothScrollToPosition(rPos3);
因此所有这一部分都在工作,但我不能每次都显示一个干净的结果,这意味着屏幕上有三条对齐的线::
这里有一个好结果:三条对齐线
这里结果不好:线未对齐
是否可以管理我的随机滚动的行为,以便每次好的结果显示:三个对齐的行。 我注意到,因为我点击了播放按钮我得到了一个很好的结果但是在第四次点击之后我得到了一个错误的结果,没有对齐线条然后它是随机的。
答案 0 :(得分:0)
如果smoothScrollToPosition()方法没有捕捉,你将不得不添加你自己的捕捉意思,如:
listSlotOne.smoothScrollToPosition((rPos1 % snap_height) * snap_height);
listSlotTwo.smoothScrollToPosition((rPos2 % snap_height) * snap_height);
listSlotThree.smoothScrollToPosition((rPos3 % snap_height) * snap_height);
或 listSlotOne.smoothScrollToPosition((rPos1 / snap_height)* snap_height); listSlotTwo.smoothScrollToPosition((rPos2 / snap_height)* snap_height); listSlotThree.smoothScrollToPosition((rPos3 / snap_height)* snap_height);
我可能错了,我不是百分百肯定,但我相信这会解决你的问题。
Snap To Grid 我记得用MOD做过......好吧也许这会有所帮助。
干杯,
Demetry