【问题标题】:How to add swipe right to android application from end of screen?如何从屏幕末尾向 android 应用程序添加向右滑动?
【发布时间】:2019-09-13 22:41:44
【问题描述】:

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

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

    这是您需要添加到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。见下图。

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

    注意:您可以根据需要调整minSwipeDistancemargin(常数0.2相乘)。

    【讨论】:

    • 谢谢,我知道它是如何工作的,但是你能给我一个 java 的例子吗,因为我的项目是用 Java 编写的,我无法编译它?
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2017-04-04
    相关资源
    最近更新 更多