We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
作者您好,当项目中只有一个Activity,初始化加载loadRoot为登录页LoginFragment,当我登录后要跳转HomeFragment时使用方法navigator.push(HomeFragment::class) { popSelf = true applySlideInOut() } 需要把原来的LoginFragment弹出并跳转到HomeFragment,需求是此时栈内只有HomeFragment即可 但是当我像上面那样做的时候跳转报错:java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference 并异常退出应用。定位源码在FragivityFragmentNavigator -> navigate方法 ->代码片段: else if (isSingleTopReplacement || isPopSelf) { if (prevFragment != null) { ft.remove(prevFragment) fragment.mTag = generateBackStackName(backStack.size - 1, destId) val size = fragmentManager.mBackStack.size if (size > 0) { fragmentManager.mBackStack[size - 1].mOps .filter { it.mCmd == OP_ADD && it.mFragment == prevFragment } .forEach { it.mFragment = fragment } } } isAdded = false } 里的 fragmentManager.mBackStack为空,在获取size前我加上fragmentManager.mBackStack!=null判断没报错了,这算Bug吗? 或者源码里有解决方案一开始就能弹出loadRoot初始化页面并跳转其他页面的正确解决方案吗?
The text was updated successfully, but these errors were encountered:
fix crash of fragmentManager.mBackStack
8d7ac56
see: #45
之前的navigation算是 天克 替换栈顶fragment这种行为,昨天本来想先修复crash,再基于新beta版的多返回栈适配的,结果被现实教育了; 需要后续慢慢完善了。
Sorry, something went wrong.
如楼主所说,我引入拷贝源码后 把 FragivityFragmentNavigator 中的130行改为 val size = fragmentManager.mBackStack?.size ?: 0 解决了。
val size = fragmentManager.mBackStack?.size ?: 0
develop navigator.pushTo() ing...
f7c980e
see: #45 see: #47
No branches or pull requests
作者您好,当项目中只有一个Activity,初始化加载loadRoot为登录页LoginFragment,当我登录后要跳转HomeFragment时使用方法navigator.push(HomeFragment::class) {
popSelf = true
applySlideInOut()
}
需要把原来的LoginFragment弹出并跳转到HomeFragment,需求是此时栈内只有HomeFragment即可
但是当我像上面那样做的时候跳转报错:java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference 并异常退出应用。定位源码在FragivityFragmentNavigator -> navigate方法 ->代码片段:
else if (isSingleTopReplacement || isPopSelf) {
if (prevFragment != null) {
ft.remove(prevFragment)
fragment.mTag = generateBackStackName(backStack.size - 1, destId)
val size = fragmentManager.mBackStack.size
if (size > 0) {
fragmentManager.mBackStack[size - 1].mOps
.filter { it.mCmd == OP_ADD && it.mFragment == prevFragment }
.forEach { it.mFragment = fragment }
}
}
isAdded = false
}
里的 fragmentManager.mBackStack为空,在获取size前我加上fragmentManager.mBackStack!=null判断没报错了,这算Bug吗?
或者源码里有解决方案一开始就能弹出loadRoot初始化页面并跳转其他页面的正确解决方案吗?
The text was updated successfully, but these errors were encountered: