Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

当滑动动画播放时立即按返回键会直接显示空白 #24

Open
hjldev opened this issue Mar 2, 2017 · 6 comments
Open

当滑动动画播放时立即按返回键会直接显示空白 #24

hjldev opened this issue Mar 2, 2017 · 6 comments

Comments

@hjldev
Copy link

hjldev commented Mar 2, 2017

滑动动画还没有播放完毕的时候,点击返回键页面就变空白了

@XBeats
Copy link
Owner

XBeats commented Mar 6, 2017

恩,这种情况确实很特殊,可以考虑动画进行过程中先禁止点击的返回,

@gaoqianZ
Copy link

这个滑动的监听怎么获取

@XBeats
Copy link
Owner

XBeats commented Jul 13, 2017

目前还没有暴露滑动距离的接口,下版本再修改一下

@qiantao94
Copy link

其实具体情况是这一页--> 上一页 --> 白屏,是因为在动画未播放完毕之前,按下返回键触发了Activity的finish()方法,而SwipeBackActivity中重写了finish方法,此方法又调用了SwipeBackHelper.finishSwipeImmediately()方法,而这个方法移除了Handler里的消息,导致MSG_SLIDE_FINISHED中的方法不能被执行,也就是ViewManager.resetPreviousView(),未能将上一个Activity的contentview添加回去,所以呈现空白。
解决方法就是将finish()中的方法放到onDestory()中去,这解决了空白的问题,运行后就变成了这一页--> 上一页 -->上一页,就是上个Activity的contentView会重复出现两次。所以还得重写onBackPressed,在动画执行期间禁用它

@dflamingoY
Copy link

还有一种情况会造成白屏, 触发onBackpress( ) 之后快速劫持 dispatchTouchEvent 事件, 会造成Precontent 被移除, 然后事件被消费, 但是preContentView 没有release , 比较笨的办法就是finishSwipeImmediately 方法中 判断下 try {
if (mViewManager != null && mViewManager.mPreviousContentView != null) {
mViewManager.addCacheView();
mViewManager.resetPreviousView();
}
} catch (Exception e) {
}
目前看来是解决了

@XBeats
Copy link
Owner

XBeats commented Sep 2, 2021

可以使用 try catch尝试,目前遇到一个瓶颈就是无法在webview中进行滑动,所以暂时没有继续维护了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants