Я пытаюсь обнаружить касание на виде, который создается после длительного нажатия, и пока пользователь все еще держит палец на экране.
IВ настоящее время я создаю простое приложение с всплывающим меню, которое появляется, когда пользователь выполняет долгое нажатие.Это приложение имеет Активность и Фрагмент, который появляется по всему экрану для отображения меню.
Пользователь делает длинное нажатие на Активность, и это обнаруживается активностью, которая затем создаетФрагмент, который перекрывает весь экран.
Функциональность, которую я хочу, - это фрагмент, который затем содержит код с помощью onTouchListeners, которые обнаруживают это текущее событие приземления (поскольку пользователь все еще держит палец на экране), и назначаютнепосредственно к просмотрам во фрагменте
Вот код, содержащий longClickListener () , который обнаруживает прикосновение в действии, а затем добавляет фрагмент.
private fun setRootViewLongTouchListener() {
rootLayout.setOnLongClickListener {
displayOverlay()
false
}
}
private fun displayOverlay() {
supportFragmentManager
.beginTransaction()
.add(R.id.rootLayout, OverlayFragment.newInstance(touchXPosition, touchYPosition), "overlayFragment")
.addToBackStack(null)
.commit()
}
Вот код внутри фрагмента, который я хотел бы обнаружить текущим касанием пальца (палец не поднимается между displayOverlay () выше вызываемого и создаваемым фрагментом, а вид во фрагменте обнаруживает касание к нему).).
view.setOnTouchListener { view, motionEvent ->
if (motionEvent.action == MotionEvent.ACTION_DOWN || motionEvent.action == MotionEvent.ACTION_MOVE) {
displayCircleAtTouchPosition(centreCircleOnX(motionEvent.x), centreCircleOnY(motionEvent.y))
} else if (motionEvent.action == MotionEvent.ACTION_UP) {
popFragment()
}
false
}