public void switchFragment(int targetIndex) {
List<BaseFragment> list = getListFragment();
if (list != null && list.size() > 0) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment targetFragment = list.get(targetIndex);
for (int i = 0; i < list.size(); i++) {
if (i != targetIndex) {
Fragment currentFragment = list.get(i);
//如果fragment已经添加到事物中,则将fragment隐藏掉
if (currentFragment.isAdded()) {
transaction.hide(currentFragment);
}
}
}
//判断fragment是否已经添加到事务中
if (targetFragment.isAdded()) {
//如果该fragment已经添加到事务中,则从事务中取出显示即可,无需销毁再重新创建
transaction.show(targetFragment);
}
通过一个list集合控制一个activity中所有的fragment显示与隐藏
最新推荐文章于 2021-08-11 09:41:35 发布
这段代码展示了如何通过一个List集合动态管理Activity中的Fragment,实现显示与隐藏。`switchFragment`方法根据目标索引切换Fragment,隐藏非目标Fragment,如果目标Fragment已存在则显示,否则添加到事务中。
摘要由CSDN通过智能技术生成