gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:30:39 26 4
gpt4 key购买 nike

我正在构建一个应用程序,允许用户使用水平滑动浏览不同的屏幕,但这些屏幕还包含垂直 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/

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