liangjingkanji / BRV

[使用文档] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大
http://liangjingkanji.github.io/BRV/
MIT License
2.49k stars 317 forks source link

拖拽+脚布局 闪退 #397

Closed android-1995 closed 8 months ago

android-1995 commented 9 months ago

在有脚布局的情况下,拖拽到脚布局时会数组越界

截图

java.lang.IndexOutOfBoundsException: Index: 14, Size: 13 at java.util.ArrayList.add(ArrayList.java:483) at com.drake.brv.listener.DefaultItemTouchCallback.onMove(DefaultItemTouchCallback.kt:166) at androidx.recyclerview.widget.ItemTouchHelper.moveIfNecessary(ItemTouchHelper.java:885) at androidx.recyclerview.widget.ItemTouchHelper$2.onTouchEvent(ItemTouchHelper.java:389) at androidx.recyclerview.widget.RecyclerView.dispatchToOnItemTouchListeners(RecyclerView.java:3259) at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3421) at android.view.View.dispatchTouchEvent(View.java:14860) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3125) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2798) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3131) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2812) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:562) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1895) at android.app.Activity.dispatchTouchEvent(Activity.java:4328) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:70) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:520) at android.view.View.dispatchPointerEvent(View.java:15133) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6671) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6459) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5900) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5957) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5923) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6088) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5931) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6145) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5904) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5957) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5923) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5931) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5904) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8926) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8877) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8845) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9059) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:280) 15:47:49.319 E at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:256) at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:9006) at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:9145) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1142) at android.view.Choreographer.doCallbacks(Choreographer.java:946) at android.view.Choreographer.doFrame(Choreographer.java:867) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1127) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:210) at android.os.Looper.loop(Looper.java:299) at android.app.ActivityThread.main(ActivityThread.java:8105) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)

liangjingkanji commented 9 months ago

希望fork仓库复现问题, 发我地址

不要删除问题描述必要信息

android-1995 commented 9 months ago

希望fork仓库复现问题, 发我地址

不要删除问题描述必要信息

https://github.com/android-1995/BRV

android-1995 commented 9 months ago

image 这样能修复

13596626382 commented 8 months ago

我也遇到这个问题了,东哥能修复一下么

希望fork仓库复现问题, 发我地址

不要删除问题描述必要信息

13596626382 commented 8 months ago

我也遇到这个问题了,东哥能修复一下么

希望fork仓库复现问题, 发我地址 不要删除问题描述必要信息

头布局和脚布局都会有这个问题

liangjingkanji commented 8 months ago

工作比较繁忙, 有空就会修复此问题

本框架出现问题都可以通过实现复写临时解决