列表无法滚动到当前行

使用ScrollToView方法滚动列表中的元素,如果该元素不是所在行的第一个元素,则会把下一行滚动到顶,造成看不到该元素。
 
请问有没有办法滚动到该元素所在行可见?
已邀请:

stiger - 92后IT男

赞同来自: wzelda

Glist的源码,如图红框位置的问题,将index改为(index/_curLineItemCount)*_curLineItemCount,测试就没有问题了,目的还是和所在排的第一个item进行比对,可能竖向流动的也有这个问题,没有试。谷主可以测一下的
QQ图片20180814105215.png

谷主

赞同来自:

检查你的问题。

wzelda

赞同来自:

检查过了,必须要取到该行的第一个元素才会滚到改行可见,目前暂时解决方法是通过计算拿到行首元素的index再使用ScrollToView方法。

stiger - 92后IT男

赞同来自:

我特意试了一下没有你说的问题,还是检查你的代码吧。

stiger - 92后IT男

赞同来自:

使用虚拟列表会出现你说的问题。

谷主

赞同来自:

虚拟列表应该怎样滚动到指定位置,教程里有说明。

stiger - 92后IT男

赞同来自:

我是测试的多排横向流动的虚拟列表,直接使用list.ScrollToView(index)方法,如图,我要定位index=3,显示正常,如果定位index=4,那么列表
QQͼƬ20180813234652.png

第一行就是6,7,8

wzelda

赞同来自:

感谢热心的siger,我的情况就是和你说的一样,虚拟列表,并且布局为横向流动。
而且因为适配的需求,每行的项目数会随着不同机型的分辨率而变化,所以目前只有通过计算获得行首元素而不能直接取。

要回复问题请先登录注册