【发布时间】: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 中被调用,但地图视图没有显示当前位置。
任何帮助表示赞赏。
【问题讨论】: