[英]On swipe left, right, up, down action
我在編寫可以啟動功能的滑動監聽器時遇到麻煩。 但是我不想使用片段。
這是代碼:
class Dock : AppCompatActivity(), GestureDetector.OnGestureListener
{
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.dock)
hide_bars()
}
private val swipeThreshold = 100
private val swipeVelocityThreshold = 100
override fun onFling(downEvent: MotionEvent, moveEvent: MotionEvent, velocityX: Float, velocityY: Float): Boolean
{
var result = false
val diffY = moveEvent.y - downEvent.y
val diffX = moveEvent.x - downEvent.x
if (Math.abs(diffX) > Math.abs(diffY))
{
// right or left swipe
if (Math.abs(diffX) > swipeThreshold && Math.abs(velocityX) > swipeVelocityThreshold)
{
if (diffX > 0)
{
swipeRight()
} else
{
swipeLeft()
}
result = true
}
} else
{
// up or down swipe
if (Math.abs(diffY) > swipeThreshold && Math.abs(velocityY) > swipeVelocityThreshold)
{
if (diffY > 0)
{
swipeDown()
} else
{
swipeUp()
}
result = true
}
}
return result
}
private fun swipeUp()
{
Toast.makeText(this, "Swipe Top", Toast.LENGTH_LONG).show()
}
private fun swipeDown()
{
Toast.makeText(this, "Swipe Bottom", Toast.LENGTH_LONG).show()
}
private fun swipeLeft()
{
Toast.makeText(this, "Swipe Left", Toast.LENGTH_LONG).show()
}
private fun swipeRight()
{
Toast.makeText(this, "Swipe Right", Toast.LENGTH_LONG).show()
}
我可以毫無問題地啟動應用程序,但是,當我滑動時,沒有任何變化。 沒有敬酒,沒有任何活動會改變布局。 這就是為什么我在這里。 請幫我。
代碼中不包含“刷卡后”功能,因為這不是問題(已測試),因此無法創建此帖子。
活動不接收觸摸輸入。 意見呢。 您需要在應用程序中設置某些視圖的onTouchListener才能實現此行為。 此外,由於您的應用程序可能會有子視圖,因此您不能僅將其放在根視圖上-您還必須實現onInterceptTouchEvent並在適當時從子視圖中竊取觸摸事件(請注意,這樣做可能會中斷子視圖的某些行為)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.