我有4个片段。我使用hide
/ show
个交易在它们之间切换。其中一个可能有嵌套的片段,这些片段由replace
事务添加。问题是如果我添加一个嵌套片段隐藏主片段并再次显示它,我的嵌套片段的onHiddenChanged
方法不会被调用。为什么这样?如何确定嵌套片段何时可见?
答案 0 :(得分:3)
我也遇到了你所面临的问题。
我发现隐藏/显示父片段对子片段的可见状态没有影响,并且不会调用onHiddenChanged()
并且总是返回isVisible() = true
。
在我的解决方法中,请在另一个问题中查看我的answer。
基本上我在getIsVisible()
上创建了我自己的BaseFragment
函数,它递归查看任何父母以找到它的实际可见状态。我相信你可以通过将它传播给所有子片段来与onHiddenChanged()
做类似的事情。
我知道这已经过时了,但也许有人可以从这些知识中受益:)
答案 1 :(得分:-3)
对于内部片段,请使用getChildFragmentManager()。