其他分享
首页 > 其他分享> > Android中奇怪的行为替换片段

Android中奇怪的行为替换片段

作者:互联网

我已经在一个应用程序中工作了几个月.上传到Playstore的版本运行正常.最近,通过一些改进,整个应用程序开始以一种非常奇怪的方式工作.

如果您在片段之间进行切换,则过一会儿它无法正确地使片段膨胀,因此始终放置第一个片段的内容.因此,如果您切换片段,则操作栏会发生变化,但内容始终相同(并且您无法与其进行交互).

这是错误https://streamable.com/9exa的快速视频

我快要疯了,因为没有任何日志或跟踪.

我使用的是分割片段的常用方法,最有趣的部分是,一开始一切正常:

Fragment fragment = getSelectedFragment(index); // returns the desired fragment
FragmentManager fragmentManager = getFragmentManager();

//Pop backstack
for(int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) {
    fragmentManager.popBackStack();
}

fragmentManager.beginTransaction()
               .replace(R.id.container, fragment)
               .addToBackStack(null)
               .commit();

有谁知道这里会发生什么?谢谢!

编辑:如果有问题,我也曾尝试清除后盖,但它并没有改变任何东西

已解决:正如我在回答中解释的那样,我发现这是与SwipeRefreshLayout有关的问题.有关此问题的更多信息,请参见When switch fragment with SwipeRefreshLayout during refreshing, fragment freezes but actually still work.

解决方法:

好的,我发现了问题所在.

似乎SwipeRefreshLayout是引起所有问题的那个.我的一个片段正在使用它,在切换片段几次后,它被卡住了.

删除它或禁用它setEnabled(false)解决了所有问题.

我希望它将对遇到相同问题的任何人有所帮助!

SO中的另一个线程引用相同的问题:When switch fragment with SwipeRefreshLayout during refreshing, fragment freezes but actually still work

标签:fragmentmanager,android-fragments,android
来源: https://codeday.me/bug/20191119/2039833.html