Как переключить фокус текущего касания с просмотра A на просмотр B? - PullRequest
1 голос
/ 27 сентября 2019

Я пытаюсь обнаружить касание на виде, который создается после длительного нажатия, и пока пользователь все еще держит палец на экране.

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
}
...