【问题标题】:Distinguishing static fragments from dynamic ones区分静态片段和动态片段
【发布时间】:2018-09-03 14:16:21
【问题描述】:
编写一个 android 库,我正在使用 supportFragmentManager.registerFragmentLifecycleCallbacks 监听片段的生命周期。在回调中有片段对象,我如何检查片段是静态片段(在 xml 文件中定义)还是动态片段(在像 FrameLayout 这样的容器中定义)?
【问题讨论】:
标签:
android
android-fragments
fragment-lifecycle
【解决方案1】:
我自己找到了解决方案,它实际上是一个非常简单的解决方案。
Fragment 类有一个名为isInLayout() 的方法,如果片段是使用<fragment> 标签创建的,则该方法返回true。
这是该方法的文档:
public final boolean isInLayout()
如果布局通过<fragment> 标签包含在活动视图层次结构中,则返回true。当通过<fragment> 标签创建片段时,总是如此,except 在旧片段从以前的状态恢复并且它没有出现在当前状态的布局中的情况下。