我有两个网格视图,我需要同步它,当我滚动一个,第二个必须滚动相同。我这样做了:
gvMain1.setOnScrollListener(new OnScrollListener(){
@Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3)
{
gvMain2.setSelection(arg1);
}
@Override public void onScrollStateChanged(AbsListView arg0, int arg1) {}
});
但是当我滚动时,我得到三角高度接近一行的差异,我认为这是因为第一次移动,但不足以切换下一个位置。 我该如何解决?
答案 0 :(得分:1)
这不容易做到。我试过这个并最终放弃了。 GridView不支持ListView支持的所有相同内容,这使得这非常困难。您可以破解Android ListView源代码并尝试复制他们所做的事情。或者只是切换到使用列表视图,如果它符合您的需求。
对于gridview,你可以做一些魔术来获得这个位置。见How to get scroll position from GridView?
对于网格视图,我从来没有找到一种方法来实际将其精确地滚动到正确的位置。它只会逐项滚动。
有关列表视图,请参阅此帖子: Android getting exact scroll position in ListView
此处还有关于此主题的好帖子:Android: Synchronized scrolling of two different views