如何解决scrollview嵌入listview时,item点击事件分发

 我来答
lqe930
2016-12-06 · TA获得超过148个赞
知道小有建树答主
回答量:458
采纳率:50%
帮助的人:227万
展开全部
在listview中嵌套ScrollView,发现横滑竖滑都正常,但是无法单击Listview的Item。查询android分发机制后解决,继承Listview重写Listview的onInterceptTouchEvent。

onInterceptTouchEvent中总是调用listview的onTouchEvent保证listview的事件都执行, super.onInterceptTouchEvent(ev)不会拦截需要传递给ScrollView的横滑。

int flag = 0;
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
//总是调用listview的touch事件处理
onTouchEvent(ev);
if(ev.getAction()==MotionEvent.ACTION_DOWN){
StartX = ev.getX();
StartY = ev.getY();
return false;
}
if(ev.getAction()==MotionEvent.ACTION_MOVE){
ScollX = ev.getX()-StartX;
ScollY = ev.getY()-StartY;
//判断是横滑还是竖滑,竖滑的话拦截move事件和up事件(不拦截会由于listview和scrollview同时执行滑动卡顿)
if(Math.abs(ScollX)<Math.abs(ScollY)){
flag = 1;
return true;
}
return false;
}
if(ev.getAction()==MotionEvent.ACTION_UP){
if(flag==1){

return true;
}
return false;
}
return super.onInterceptTouchEvent(ev);
}

http://img0.ph.126.net/CyDdSOde4eoMVlJkqTmtuQ==/6631461390862773987.jpg
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式