永发信息网

怎么解决Android listview 单个item的左右滑动和整个listview上下滑动的冲突问题?

答案:2  悬赏:50  手机版
解决时间 2021-11-21 14:30
怎么解决Android listview 单个item的左右滑动和整个listview上下滑动的冲突问题?
最佳答案
你是listView把滑动事件截取了,然后item就不能响应滑动了吗?这样可以重写listView,重写onInterceptTouchEvent()
全部回答
单个item的左右滑动和整个listview上下滑动的冲突关键在于识别用户的动作是要滑动item还是listview,而知道用户意图后的滑动行为则不会成为冲突(深刻理解这句话)。
目前可以勉强应付的方法是根据用户的移动坐标来识别其意图:
1、记录用户触发移动的开始X,Y坐标;
2、记录用户移动过程中的X,Y坐标;
3、计算横坐标偏移和纵坐标偏移,如果前者较大,则认为是水平移动,也就认为是移动item;否则认为是垂直移动,算是移动listview。追问但是我右滑到一定距离时,我又上下移动,Move时候的,y轴变化了,这样的话后者就比前者大,那么listview就又开始移动了追答我们知道,listview定义的是线性数据垂直显示的整体,那么在垂直方向上的移动,任何个体item都要服从于listview整体的。因此,要想脱离listview,让个体item自己在各个方向上自由移动,必须另外想别的方法。
一个可行的思想是利用相对移动,这可能恰恰就是你想要的结果,具体实现思路是:
1、计算item将要移动的最大区域边界,这个计算可以是动态的,但必须要保证在listview渲染孩子之前完成;
2、给移动item向listview申请最大区域的尺寸;
3、让item在给定的最大区域中做任何想要的移动,此时任何的移动都被限制在该区域内,因此不会和listview发生关系。
注意:在给定区域内的相对移动一般通过调整padding来实现。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农村三间平房带院如何设计
跪求, 2010年12月份的英语三级答案
老公晚上睡着了常抖腿什么意思
美加美时尚灯饰地址在什么地方,我要处理点事
单网卡,内外双网同时上网如何设置?
请教在linux下的编译问题
欧普照明时尚灯饰馆地址有知道的么?有点事想
找规律15,14,12,9,5,(,)(,)(,)
请问一下我手皮肤这是什么原因
1/8米的三倍就是一米的多少
汉王A10怎么样?汉王A10好吗
通辽市旅行社内蒙古大青沟一日游多少钱?
中国古建筑最高等级的台基大概可以分为几个主
合肥234公交到明珠广场怎么坐
女主从猎人穿越到网王的小说,越多越好。
推荐资讯
电脑主机里面插头掉了 AC'97 应该插在什
仪征哪家卖手机的店比较好
图中大的那只鸟叫什么名字
X20可以放两张卡吗
想知道这款帽子的名字
一辆货车从超市出发,向东走了1千米,到达小
一六年新的健身胡乱圈怎么样才能摇好
大王卡几天能到
江南文化旅行社公司地址有知道的么?有点事想
买二手08年颐达车烧机油,要怎么投诉
有什么方法能够减少制砂机在工作中产生的粉尘
break off 与stop 的区别
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?