Android两个ListView同步滚动
2个回答
展开全部
这个实现是可以实现的,我不是很推荐你使用这种方式,但还是给你说下思路,在你滚动的那个listView的onScroll方法里面去实现另一个listView的滚动,但是这里有个问题,也是我以前项目用你这种方式去实现遇到的问题,就是你所谓的移动10px,这里我用LV1和LV2来表示两个listView,当LV1向上移动10px,必须是在它的滚动停止以后,LV2再跟着去滚动10px。因为在onScroll的时候,如果我们得在LV1的onScoll状态没有停止的情况下就得去更新LV2的滚动状态,也就是LV1滚动和LV2的滚动同步操作,这样去实现经常会遇到一些问题。
后来就想滚动LV1停止以后,去根据滚动距离去实现LV2的滚动,但是LV2的突然滚动,跟LV1其实就不是同步滚动了。这样实现起来,其实很不好,不管是应用性能还是给用户体验都很差。
我不是很清楚你的ListView里面有什么内容,但是如果可以避免这样使用的话,还是尽量避免,可以尝试使用布局将两个ListView item的东西都放到一个Layout里面去,将它们再添加到一个ScrollView里面,看上去是可以实现看上去像两个内容的同步的滚动。
后来就想滚动LV1停止以后,去根据滚动距离去实现LV2的滚动,但是LV2的突然滚动,跟LV1其实就不是同步滚动了。这样实现起来,其实很不好,不管是应用性能还是给用户体验都很差。
我不是很清楚你的ListView里面有什么内容,但是如果可以避免这样使用的话,还是尽量避免,可以尝试使用布局将两个ListView item的东西都放到一个Layout里面去,将它们再添加到一个ScrollView里面,看上去是可以实现看上去像两个内容的同步的滚动。
更多追问追答
追问
追答
你用下面这种方式去试一下看看,让两个listView的滚动的高度同步
if(this.getScrollY()!= LV2.getScrollY())
otherList.setScrollY(this.getScrollY());
比如上面,this代表当前滚动的ListView(LV1),如果另一个listView(LV2)它的高度跟当前ListView的滚动高度不一样的话,就让他们同步下,我没具体实现,但感觉应该是可以的,你试试,在onScroll里面写。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询