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) координаты, отметьте его и затем продолжайте рисовать.

В настоящее время у меня есть эти проблемы:

  1. Я не уверен, что getFocusedChild() метод RecyclerView будет правильно возвращать дочерний элемент, который находится под touch_down(x,y);
  2. Для того, чтобы событие касания дошло до RecyclerView Мне нужно не употреблять его в DrawingView затем пометить дочерний элемент в RecyclerView и не потреблять его снова, а затем вернуть его DrawingView и продолжить с рисунком.

Это довольно сложно для меня, так как я только недавно начал программировать на Android и не очень хорошо знаком с API и его работой.

Любые предложения о том, как связать / пометить дочерние элементы, чтобы я мог легко узнать, какой рисунок / путь принадлежит какому дочернему элементу, будут приветствоваться.

1 ответ

Решение

Видимо есть метод в RecyclerView называется findChildViewUnder(), который делает именно то, что мне нужно.

Другие вопросы по тегам