android中单击事件如何与OnTouch()共存?

m1872216 2013-03-12 02:57:58
问题描述:
activity
界面:帧布局,两层
底层:ListView(设置了事件:OnItemClickListener)
顶层: HorizontalScrollView()
Activity中重写了onTouch(),要求相应DOWN事件和UP事件
问题:
当onTouch返回true时,UP事件可以响应,但是ListView 中OnItemClickListener的点击事件无响应。
当onTouch返回false时,UP事件无响应,ListView 中OnItemClickListener的点击事件有响应。

我想要的理想结果:UP事件、ListView 中OnItemClickListener的点击事件两者皆有响应
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
顾小林 2013-03-14
  • 打赏
  • 举报
回复
百度一下 事件分发机制
luozhongzhu 2013-03-13
  • 打赏
  • 举报
回复
Activity onTouch 里面要接受ACTION_DOWN事件才会接着处理ACTION_UP事件哦,如果ACTION_DOWN就直接返回false,UP事件自然不会响应了。 你可以在UP事件处理之后再返回false。
问答小助手 2013-03-13
  • 打赏
  • 举报
回复
@Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            startX = event.getX();//probably Click
            return false;
        case MotionEvent.ACTION_UP:
            float currentX = event.getX();
            if (this.startX-MOVE_DENSITY > currentX) {
                //fling right
                            return true;
            }
            if (this.startX+MOVE_DENSITY < currentX) {
                //fling left
                return true;
            }
            default:
            return false;
        }   
    }

80,354

社区成员

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

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