java - 安卓开发 : Decrease horizontal swipe sensitivity OR turn off vertical swiping

标签 java android swipe

我正在构建一个应用程序,允许用户使用水平滑动浏览不同的屏幕,但这些屏幕还包含垂直 ScrollView 。如果垂直滚动不是 100% 垂直(希望有意义),android 似乎会将垂直滚动检测为水平滑动。

有没有办法禁用垂直滑动,或者降低水平检测的灵敏度?

目前,onFling 类中的代码非常基础。

    public boolean onFling(MotionEvent start, MotionEvent finish, float velocityX,
                float velocityY) {
     //Right Swipe
     if (finish.getRawX() < start.getRawX()) {
        Toast.makeText(getApplicationContext(), "Showing Listings For : "+date.getDate(),Toast.LENGTH_SHORT).show();
      }

     if (start.getRawX() < finish.getRawX()) {
        Toast.makeText(getApplicationContext(), "Showing Listings For : "+date.getDate(),Toast.LENGTH_SHORT).show();
      }
    }

-- 更新--

好吧,我最终计算了滑动的起点和终点之间的垂直差异,这给了我一些东西来确定滑动的垂直程度。它非常基础,但似乎工作正常。

更新后的代码现在看起来像。

    public boolean onFling(MotionEvent start, MotionEvent finish, float velocityX,
                float velocityY) {
     //Right Swipe

     //Caluclate the vertical difference
     float verticalChange = start.getRawY() - finish.getRawY();

     if ((finish.getRawX() < start.getRawX()) && (verticalChange > -40 && verticalChange < 40)) {
        Toast.makeText(getApplicationContext(), "Showing Listings For : "+date.getDate(),Toast.LENGTH_SHORT).show();
      }

     if (start.getRawX() < finish.getRawX()) && (verticalChange > -40 && verticalChange < 40)) {
        Toast.makeText(getApplicationContext(), "Showing Listings For : "+date.getDate(),Toast.LENGTH_SHORT).show();
      }
    }

最佳答案

您可以扩展自己的垂直 ScrollView ,它不会触发水平滑动事件。当然,那么您将不得不在不是 ScrollView 的部分上滑动。

--额外评论---你在各种手机/设备上测试过这个吗?您可能会发现自己有不同的结果。

关于java - 安卓开发 : Decrease horizontal swipe sensitivity OR turn off vertical swiping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15089333/

相关文章:

java - 树状图和并发跳过列表图之间的区别?是否可以将 NavigableMap 与重复键的映射结构一起使用?

android - 我们可以在另一个类中使用来自其他类的可组合函数吗?

android - 向浏览器发送 Intent 以打开特定 URL

javascript - 在桌面上用鼠标滑动手势,如 Photoswipe,但为 div 设置动画

java - 上下滑动半屏调节音量,半屏调节亮度

java - 原始类型只是不从 java.lang.Object 继承的类型吗?

Java 格式 double 到最小精度的字符串

java - 在不调用 super.clone 的情况下覆盖 Clone

android - Paypal Android SDK 2.3.1 集成错误 APP 挂起

ios - 在 UITableView 滑动中添加额外的按钮