我在我的 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
。请参见下图。
因此,我们检查 event
的 x1 是否小于边距。此外,我们验证滑动距离 delta
是否大于 0,表明这是向右滑动的 Action 。最后,我们检查滑动距离是否大于 minSwipeDistance
。如果满足所有条件,我们可以执行进一步的操作。
注意:您可以调整minSwipeDistance
和margin
(乘以常量0.2
)您的需求。
关于android - 如何从屏幕末尾向右滑动添加到Android应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931070/