android - 如何从屏幕末尾向右滑动添加到Android应用程序?

标签 android android-studio

我在我的 android 应用程序中工作然后我遇到了问题,我想在我的应用程序中添加向右或向左滑动以在用户滑动时处理某些事情,但我希望用户从屏幕末端滑动而不是像这个例子一样居中。 [1]: https://imge.to/i/v3OaQT “例子”

最佳答案

这是您需要添加到您的 Activity 中的代码。

var x1 = 0.0f
var x2 = 0.0f
val minSwipeDistance = 150f

val displayMetrics : DisplayMetrics? = null
windowManager.defaultDisplay.getMetrics( displayMetrics )
val margin = ( displayMetrics!!.widthPixels * 0.2f ).toInt()

bottom_app_bar.setOnTouchListener { v, event ->
    when( event.action ) {
        MotionEvent.ACTION_UP -> {
            x1 = event.x
        }
        MotionEvent.ACTION_DOWN -> {
            x2 = event.x
            val delta = x2 - x1
            val absDelta = Math.abs( delta )
            if( absDelta > minSwipeDistance && delta > 0.0f && x1 < margin ) {
                // Handle the further actions
            }
        }
    }
    v?.onTouchEvent(event) ?: true
}

DisplayMetrics 中,我们获得以像素为单位的屏幕宽度。然后,我们通过减小宽度(通过将其乘以 0.2 )从需要执行操作的地方获得 margin 。请参见下图。

enter image description here

因此,我们检查 event 的 x1 是否小于边距。此外,我们验证滑动距离 delta 是否大于 0,表明这是向右滑动的 Action 。最后,我们检查滑动距离是否大于 minSwipeDistance。如果满足所有条件,我们可以执行进一步的操作。

注意:您可以调整minSwipeDistancemargin(乘以常量0.2)您的需求。

关于android - 如何从屏幕末尾向右滑动添加到Android应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931070/

相关文章:

java - Android Studio - 从 Google Places Details API 电话号码解析 JSON,首次运行时给出 null

java - 使用 clean() 方法在我的 build.gradle 中出错

android - 无法使用 API 级别 10 创建 Android 项目,因为没有可用的兼容主题

android - 如何在Android中设置searchview文本

android - 图像在Android Studio中的Note 10和One Plus设备上旋转

java - 如何解析 Android XML 中的同名标签?

android - TextView 编辑文本不响应单击事件

java - UIautomator - Android Studio - 如何生成 APK 或 JAR 文件

Android,获取经纬度(wifi)和设备ID

iphone - 最好的多格式 C++ 移动开发解决方案?