gpt4 book ai didi

android - Android 中的 MotionEvent.ACTION_DOWN 过于敏感。即使只是触摸屏幕片刻,也会收到此事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:28 24 4
gpt4 key购买 nike

我有一个布局(一个表格布局)。每当用户执行“向下”手势时,都需要调用特定函数。但是,ontouchlistener 会立即捕获事件,而不是等到用户执行正确的“下拉”手势。

我的代码是:

homePageTableLayout.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
if ((event.getAction() == MotionEvent.ACTION_DOWN)) {
startSyncData();
}
return true;
}
});

目前,正在发生的是立即调用 startSyncData() 函数。最终结果应该有点类似于 android 常用的“pulltorefresh”库,但在这个用例中,我不必更新 View 。我只需要将一些数据发布到服务器。我无法使用“pulltorefresh”库,因为它不支持“拉取”表格布局。我尝试将表格布局放在 ScrollView 中,但这只会破坏 UI。

最佳答案

您可以尝试在 ACTION_MOVEACTION_UP 中执行此操作 - 如果您需要仅在向下滑动手势时执行此操作,这应该会有所帮助,引入四个全局 float :x, y, x1, y1,然后在ACTION_DOWN中:

x = event.getX();
y = event.getY();

ACTION_MOVEACTION_UP:

x1 = event.getX();
y1 = event.getY();

然后在 ACTION_UP 中:

if (y1 > y) {        //pointer moved down (y = 0 is at the top of the screen)
startSyncData();
}

关于android - Android 中的 MotionEvent.ACTION_DOWN 过于敏感。即使只是触摸屏幕片刻,也会收到此事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792496/

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