我得到下一个错误:java.lang.illegalstateexception:已经添加了片段。
这是一个每次我更改选项卡时都会膨胀的布局,如图所示:
![[第一个选项卡]http://prntscr.com/h4e8pc
![[第二个选项卡]http://prntscr.com/h4ebyn
所以我知道了这个问题,但是我尝试了很多方法来解决它却没有结果。我试着用 .replace
而不是 .add
,这样它不会崩溃,但Map不会加载。当我切换到那个选项卡时,也尝试删除片段,但结果与 .replace
一个。
case R.id.navigation_dashboard:
frame = (FrameLayout) findViewById(R.id.content);
frame.removeAllViewsInLayout();
LayoutInflater.from(getApplicationContext())
.inflate(R.layout.activity_prueba_dashboard, frame, true);
fragmentTransaction =
getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.content2, mMapFragment);
fragmentTransaction.commit();
mMapFragment.getMapAsync(my_maps_class);
2条答案
按热度按时间30byixjq1#
您可能正在尝试替换相同片段的内容,在本例中,您不需要fragmenttransaction。
解决方案是创建第二个片段,在该片段上有Map,在这种情况下需要事务。
js81xvg62#
我相信在那种情况下使用viewpager要干净得多。检查此代码:
然后将适配器与宿主appcompat活动中的viewpager链接,如下所示:
您可以通过调用以下命令轻松地在片段之间切换: