«Невозможно найти EventEmitter для полученных касаний» при использовании RecyclerView внутри собственного компонента полAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 «Невозможно найти EventEmitter для полученных касаний» при использовании RecyclerView внутри собственного компонента пол

Сообщение Anonymous »

У меня есть собственный компонент пользовательского интерфейса React, который использует RecyclerView для отображения прокручиваемого списка карточек.
Я определяю свое представление следующим образом:

Код: Выделить всё

public class ListView extends LinearLayout {
CustomRecyclerView recyclerView;
SwipeRefreshLayout swipeRefreshLayout;
RecyclerViewAdapter adapter;
Product[] products;

public ListView(Context context) {
super(context);
inflate(context, R.layout.list, this);
recyclerView = findViewById(R.id.listView);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
swipeRefreshLayout = findViewById(R.id.refresh_layout);
adapter = new RecyclerViewAdapter();
recyclerView.setAdapter(adapter);
}

@SuppressLint("NotifyDataSetChanged")
public void setData(@Nullable ReadableArray data) {
post(() -> {
Gson gson = new Gson();
assert data != null;
products = gson.fromJson(data.toString(), Product[].class);
adapter.clearProducts();
adapter.addProducts(Arrays.asList(products));
adapter.notifyDataSetChanged();
});
}
}
и моему менеджеру нравится это:

Код: Выделить всё

public class ListViewManager extends SimpleViewManager {
private final String REACT_CLASS = "nativeList";

@NonNull
@Override
public String getName() {
return REACT_CLASS;
}

@NonNull
@Override
protected ListView createViewInstance(@NonNull ThemedReactContext reactContext) {
return new ListView(reactContext);
}

@ReactProp(name = "data")
public void setData(ListView view, ReadableArray data) {
view.setData(data);
}

@ReactProp(name = "refreshing")
public void setRefreshing(ListView view, boolean refreshing) {
view.setRefreshing(refreshing);
}
}
Мой список отображается правильно, но когда я взаимодействую с карточками, я получаю много таких ошибок:

Код: Выделить всё

E  Unhandled SoftException
com.facebook.react.bridge.ReactNoCrashSoftException: Cannot find EventEmitter for receivedTouches: ReactTag[26] UIManagerType[2] EventName[topTouchMove]
at com.facebook.react.uimanager.events.ReactEventEmitter.receiveTouches(ReactEventEmitter.java:103)
at com.facebook.react.uimanager.events.TouchEvent.dispatchModern(TouchEvent.java:192)
at com.facebook.react.uimanager.events.EventDispatcherImpl$DispatchEventsRunnable.run(EventDispatcherImpl.java:370)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:234)
Похоже, что ReactNative не знает о представлениях внутри RecyclerView. Поэтому, когда я взаимодействую с ними, ReactNative теряется и не может использовать связанный обработчик на своей стороне.
Реальная проблема заключается в том, что иногда ReactTag[26] соответствует совершенно другому представлению. в ReactNative DOM. React Native запускает совершенно несвязанные обработчики и вызывает странные ошибки в приложении.
Как я могу сделать так, чтобы React Native знал, что находится внутри моего recyclerView ? или хотя бы игнорировать это?

Подробнее здесь: https://stackoverflow.com/questions/783 ... iew-inside
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • TypeError: не удается прочитать EventEmitter of EventEmitter ondefine: Anonymous@197745: 50 LoadModuleImplementation@267
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Kotlin RecyclerView в RecyclerView после обновления представление переходит в дочерний RecyclerView
    Anonymous » » в форуме Android
    0 Ответы
    80 Просмотры
    Последнее сообщение Anonymous
  • Как добавить прослушиватель касаний на дочерних узлах ModelNode?
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Счетчик касаний мультитач
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Счетчик касаний мультитач
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»