我使用Google地图和导航抽屉开发了一款应用。当我启动应用程序时,会显示地图,用户可以打开导航抽屉。
当用户点击导航抽屉中的第一个项目时,地图应该显示,以防他之前切换到另一个片段。但是,当我调用地图片段时,我的应用程序崩溃时出现以下错误代码:java.lang.IllegalStateException: Can't change container ID of fragment SupportMapFragment{36a7826b #0 id=0x7f0e007a}: was 2131624058 now 2131624057
我在onItemClick
的导航栏中为显示地图而执行的操作是:
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, supportMapFragment)
.addToBackStack(null)
.commit();
它适用于其他片段但不适用于地图片段。地图片段在xml中进行硬编码,从头开始显示,并在onCreate方法中实例化,如下所示:supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
通过调用new MyFragment();
来实例化我的所有其他片段,并将它们扩展为Fragment
。
非常感谢有关如何修复崩溃和显示地图的任何建议和提示。