【发布时间】:2017-08-07 07:41:05
【问题描述】:
我的应用程序有一个底部导航栏,它有 5 个选项卡。 所以根据这些标签,我有 5 个片段 当我单击选项卡时,片段会根据该选项卡进行更改。 我可以使用 beginTransaction().replace 方法切换片段... 我不希望每次切换标签时都破坏并重新创建片段,所以我的解决方案是这样的
//I init 5 fragments
Fragment1 frag1 = new Fragment1();
Fragment2 frag2 = new Fragment2();
Fragment3 frag3 = new Fragment3();
Fragment4 frag4 = new Fragment4();
Fragment5 frag5 = new Fragment5();
//When I click on tab, for example tab1, I hide all fragments except tab1
//hide all fragments
getSupportFragmentManager()
.beginTransaction()
.hide(fragment1) //Fragment2, 3, 4, 5 as well
.commit();
//show fragment 1
getSupportFragmentManager()
.beginTransaction()
.show(fragment1)
.commit();
效果很好,但问题是有时会同时显示 2 个片段(我不知道为什么,因为我隐藏了所有片段) 还有其他方法可以实现吗?切换片段而不破坏它并重新创建它。
【问题讨论】:
标签: java android android-fragments