gpt4 book ai didi

Android:View.setOnTouchListener() 在哪里?

转载 作者:行者123 更新时间:2023-11-30 01:25:05 24 4
gpt4 key购买 nike

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

我想用 map 来存储每个 View 的原始监听器,但我没有找到任何方法获取当前分配的监听器。

我需要做这样的事情:

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

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

最佳答案

如果您使用 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()的源码;

关于Android:View.setOnTouchListener() 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36515589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com