Android两个ListView同步滚动

就是其中任何一个ListView向上滚动10px,另一个也向上滚动10px... 就是其中任何一个ListView向上滚动10px,另一个也向上滚动10px 展开
 我来答
wicked_Harmous
2012-09-17 · TA获得超过690个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:218万
展开全部
这个实现是可以实现的,我不是很推荐你使用这种方式,但还是给你说下思路,在你滚动的那个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里面,看上去是可以实现看上去像两个内容的同步的滚动。
更多追问追答
追问

多谢你的热心回复!我要做列表显示效果,可以看到第三列往后的几列是可以左右拖动的,但是前两列不动,同时标题行会同步左右滚动,这一效果,用的是两个HorizontalScrollView,在OnScrollChanged事件中修改两个视图滚动位置。但是前两列和后几列的上下滚动是用两个ListView做的,无法实现同步上下滚动。请问怎么可以实现我要的效果?

追答
你用下面这种方式去试一下看看,让两个listView的滚动的高度同步
if(this.getScrollY()!= LV2.getScrollY())
otherList.setScrollY(this.getScrollY());
比如上面,this代表当前滚动的ListView(LV1),如果另一个listView(LV2)它的高度跟当前ListView的滚动高度不一样的话,就让他们同步下,我没具体实现,但感觉应该是可以的,你试试,在onScroll里面写。
_446865422
2012-09-19 · TA获得超过229个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:156万
展开全部
如果两个ListView是相邻而中间没有其它控件的话,建议用GridView。你可以把GridView每一行的显示个数控制在自己想要的数量里,然后你就可以很轻松的完成你想要的功能了。只要你的数据列表编辑正确。
更多追问追答
追问

GridView可以固定列吗?我没找到,因为我还要实现这样的效果

左右滑动后面几列的时候,名称和代码这两列不动,但是上下滑动任何一列,会全部上下同步滑动

追答
没思路。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式