Android: помечать дочерний элемент представления на событии touch_down
У меня есть эта архитектура (ViewGroup с View и RecyclerView):
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.wacom.matchapoc.MainActivity"
tools:showIn="@layout/activity_main">
<com.wacom.matchapoc.view.SmartRecyclerView
android:id="@+id/my_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:scrollbars="vertical" />
<com.wacom.matchapoc.view.DrawingView
android:id="@+id/drawingView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
DrawingView
находится на вершине RecyclerView
и имеет Переопределено onTouch()
событие, так что когда isEnableDrawing()
флаг имеет значение true (вы можете установить его в настройках основного действия), он обрабатывает события touch_down / move / up, так что вы можете рисовать над элементами в RecyclerView
,
Что я хочу сделать сейчас, так это связать сделанные пользователем рисунки с DrawingView
к дочерним элементам (текст, изображения и т. д.) RecyclerView
, Для этого мне нужно знать, какой дочерний элемент RecyclerView
находится под начальным touch_down(x,y)
координаты, отметьте его и затем продолжайте рисовать.
В настоящее время у меня есть эти проблемы:
- Я не уверен, что
getFocusedChild()
методRecyclerView
будет правильно возвращать дочерний элемент, который находится подtouch_down(x,y)
; - Для того, чтобы событие касания дошло до
RecyclerView
Мне нужно не употреблять его вDrawingView
затем пометить дочерний элемент вRecyclerView
и не потреблять его снова, а затем вернуть егоDrawingView
и продолжить с рисунком.
Это довольно сложно для меня, так как я только недавно начал программировать на Android и не очень хорошо знаком с API и его работой.
Любые предложения о том, как связать / пометить дочерние элементы, чтобы я мог легко узнать, какой рисунок / путь принадлежит какому дочернему элементу, будут приветствоваться.
1 ответ
Видимо есть метод в RecyclerView
называется findChildViewUnder(), который делает именно то, что мне нужно.