两难问题

wenly8384 2011-06-08 03:33:48
我自己写的FrameLayout,内部的view中包含42个TextView

public boolean onInterceptTouchEvent(MotionEvent ev) {

int action = ev.getAction();
switch(action){
case MotionEvent.ACTION_DOWN:
return true;
//这个返回值直接影响后续的处理,true的话对整个view的滑动支持良好但子view的click等处理被拦截;
false的话支持对子view的click处理等但不支持view的滑动操作
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}

对整个view的滑动和若干子view的click处理都分别完成了,最后发现二者是互斥的,滑动的处理是在viewgroup级别,子view的处理被拦截;不可兼得;
比如列表等会同时支持滑动和单击;它是怎么实现的
...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenly8384 2011-06-08
  • 打赏
  • 举报
回复
我的问题归结为一句话:如何点击时viewGroup把事件下传到子View
滑动时viewGroup把事件自己处理??
wenly8384 2011-06-08
  • 打赏
  • 举报
回复
在onInterceptTouchEvent ACTION_DOWN返回false时,viewGroup的onTouchEvent并不会收到事件,而是最终传递给了子View。先父View捕捉到Touch, 通过onInterceptTouchEvent(),决定是否传递给子Touch, 不下传,就处理掉。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧