比方说,我观察到如下的fragmentsTag列表:[A,B,C]
我的目标是按此顺序显示这些片段(在我的情况下为linearLayout
。]
所以我可以这样做:
childFragmentManager.fragmentTransaction {
add(R.id.fragmentContainer, fragment, fragmentTag)
}
现在让我们说,片段的顺序改变了,我选择隐藏片段B。因此,在liveData中,我收到了一个新的fragmentsTag列表,如下所示:[[C,A]
如何在我的LinearLayout中按此顺序显示这些片段?并隐藏旧的片段B。
请注意,我要重用fragmentManager
中已经存在的片段[A,B,C]的实例。因此没有新的FragmentManager.add()
所以我用fragmentManager.hide(fragment)
和fragmentManager.show(fragment)
...但是,我不能保持秩序。
我从LinearLayout清除了所有视图,并且每次liveData更新时,我都向LinearLayout动态添加了片段。对于我来说,这似乎是一个临时解决方案。