【问题标题】:Fragment back navigation with Mapview not working as expected使用 Mapview 的片段返回导航无法按预期工作
【发布时间】:2014-12-12 18:56:47
【问题描述】:

我有一个活动,其中有两个片段。当应用程序加载时,带有mapview的片段A被transaction.add(R.id.fragment_container, fragmentA).commit();加载

我有一个侧面菜单,当我在上面选择一个项目时,会加载第二个片段。

Fragment fragmentB = new FragmentB();
Bundle args = new Bundle();
fragmentB .setArguments(args);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragmentB );
transaction.addToBackStack(null);
transaction.commit();

但是当我从 fragmentB 按下返回按钮时,应用程序退出。

所以我在 MainActivity 中添加了以下代码

@Override
    public void onBackPressed() {
        if (getFragmentManager().getBackStackEntryCount() > 0 ){
            getFragmentManager().popBackStack();
        } else {
            super.onBackPressed();
        }
    }

现在片段 A 加载,但地图是静态的,它没有为当前位置设置动画,尽管我有代码在 onCreateView 方法中将相机移动到当前位置(onCreateView() 中的 setUpMapIfNeeded())

private void setUpMapIfNeeded() {
        if (mMap == null) {
            mMap = mapView.getMap();
        }
        if(mMap!=null){
            mMap.setMyLocationEnabled(true);
            CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(0, 0)).zoom(17).build();
            mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
        }
    }

所有生命周期方法都在 fragmentA 中被调用,但地图视图没有显示当前位置。

任何帮助表示赞赏。

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    您需要初始化 Google Maps API。请参阅文档here

    mapView.getMap();之前致电MapsInitializer.initialize(context);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-18
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2019-03-22
      相关资源
      最近更新 更多