Tencent / QMUI_Android

提高 Android UI 开发效率的 UI 库
http://qmuiteam.com/android
Other
14.42k stars 2.67k forks source link

侧滑返回的时候有几率会Crash #401

Closed xtsxx closed 5 years ago

xtsxx commented 5 years ago

运行环境

具体问题描述

侧滑返回的时候有几率会Crash

问题截图

Layout Inspector 文件(如何获取)

异常日志(堆栈)

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. at android.view.ViewGroup.addViewInner(ViewGroup.java:4654) at android.view.ViewGroup.addView(ViewGroup.java:4490) at android.view.ViewGroup.addView(ViewGroup.java:4431) at com.qmuiteam.qmui.arch.QMUIFragment$2.onEdgeTouch(QMUIFragment.java:383) at com.qmuiteam.qmui.arch.SwipeBackLayout$ViewDragCallback.tryCaptureView(SwipeBackLayout.java:483) at android.support.v4.widget.ViewDragHelper.tryCaptureViewForDrag(ViewDragHelper.java:908) at android.support.v4.widget.ViewDragHelper.shouldInterceptTouchEvent(ViewDragHelper.java:1062) at com.qmuiteam.qmui.arch.SwipeBackLayout.onInterceptTouchEvent(SwipeBackLayout.java:373) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2366) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514) at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2831) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1863) at android.app.Activity.dispatchTouchEvent(Activity.java:3046) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68) at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2792) at android.view.View.dispatchPointerEvent(View.java:10228) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5350) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5186) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4679) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4645) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4787) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4653) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4844) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4679) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4645) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4653) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4626) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7323) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7201) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7162) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7433) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7397) at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7460) at android.view.Choreographer$CallbackRecord.run(Choreograph

cgspine commented 5 years ago

arch 版本升级到0.1.4了吗?

xtsxx commented 5 years ago

@cgspine 已经升级到0.1.4了,在QMUIFragment中包含webView的情况下会发生

cgspine commented 5 years ago

现在可以升级到 0.2.0 了。 fix 了这个问题, 并且支持 activity 手势返回了。 不过现在需要在 Application.onCreate() 里调用 QMUISwipeBackActivityManager.init(this)