Android 嵌套fragment互相替换时重叠显示
如有错误欢迎指正
在写一个Android项目,有一个homefragment,在homefragment中嵌套了listfragment和detailfragment,点击listfragment的内容时,会用detailfragment替换listfragment,问题就出在这替换的时候,listfragment没有消失,而是和detailfragment重叠显示在homefragment界面,listfragment的代码我就不讲了,详细可以看我上篇文章
android fragment中嵌套一个新的fragment不显示_m0_59834108的博客-CSDN博客
这是homefragment,首先显示listfragment
点击任一歌曲,用detailfragment替换,但是重叠了。
让我们看一下listfragment的Java监听事件的代码
这里用getActivity()是不合理的,之前写这段代码的时候还不懂fragmentmanager父子之间的逻辑,现在懂了一些,listfragment是homefragment的子级,不应该用getActivity()获得acivity的manager,而是要获得父级homefragment的manager,应该用getParentFragmentManager(),大家可以看一下官方介绍,如果这个fragment是另一个fragment的孩子,则返回父级的getChildFragment()方法。
我们再点击之后就成功了,没有重叠显示了
关于这些fragment和manager的问题,我收集了一下文章,大家可以参考一下
Android fragment嵌套fragment,实现点击列表跳转fragment原理分析_m0_59834108的博客-CSDN博客
滑动摩擦力: 亲测有用
岁穗.: url应该写什么啊,
m0_59642452: Please table a look at https://plugins.jetbrains.com/plugin/24593-daogenerator JetBrains's plugin, it not only generate dao for single table but also for query and master-detail tables
rrrr444: 人傻了。。
lambkinmoppet: let iframeWin = layero.find('iframe')[0]; let search_yes = iframeWin.contentWindow.getMember(); //搜索来的 let body = top.layer.getChildFrame('body', index); top.layer.close(index);