Android:View.getOnTouchListener()在哪里?

时间:2016-04-09 10:30:53

标签: android ontouchlistener

我想实现一个覆盖所有onTouchListener的通用系统 在viewGroup上并稍后恢复它们。

我想了解地图来存储每个视图的原始听众,但我找不到任何方法 获取当前分配的监听器。

我需要做这样的事情:

View v;
View.onTouchListener backupListener = v.getOnTouchListener();

但遗憾的是getOnTouchListener不存在?我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您使用setOnTouchListener,它不会覆盖触摸侦听器,只是将指针保存到另一个触摸侦听器,因此您实际上可以调用原始触摸侦听器:

view =  findViewById(R.id.someView);
    //alternative:
    view.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.d("touch"," alternative");
            return true;
        }
    });
    //call to the original:
    view.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return v.onTouchEvent(event);
        }
    });

你可以查看setOnTouchListener();

的源代码