我正在尝试构建自己的网格 View 功能-在GridView
上扩展。
我唯一无法解决的是如何获取GridView
的当前滚动位置。getScrollY()
确实总是返回0,并且onScrollListener
的参数只是一系列可见的 subview ,而不是实际的滚动位置。
这似乎并不困难,但我只是无法在网络上找到解决方案。
这里有人有主意吗?
最佳答案
我没有找到任何好的解决方案,
但是这一点至少能够完美地保持滚动位置的像素水平:
int offset = (int)(<your vertical spacing in dp> * getResources().getDisplayMetrics().density);
int index = mGrid.getFirstVisiblePosition();
final View first = container.getChildAt(0);
if (null != first) {
offset -= first.getTop();
}
// Destroy the position through rotation or whatever here!
mGrid.setSelection(index);
mGrid.scrollBy(0, offset);
这样一来,您将无法获得绝对的滚动位置,而是可以获得可见的项+位移对。
笔记:
希望对您有所帮助,并给您一个想法。
关于android - 如何从GridView获取滚动位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6125013/