HERE 地图在 FrameLayout 上工作 popBackStack() 不工作
HERE Maps working on FrameLayout popBackStack() not working
我正在开发 FrameLayouts 以支持 Activity 加载不同的片段。第一个片段是 MapFragment,另一个是地图的 MapDownloadManagerFragment。
我对 popBackStack() 方法有疑问。 MapFragment 不显示任何地图。执行 popBackStack() 后仅显示白色背景。
代码如下:
private MapFragment mMapFragment = null;
private FragmentTransaction mFragmentTransaction;
private MapDownloadManagerFragment mMapDownloadManagerFragment;
protected void onCreate(Bundle savedInstanceState) {
if (mMapFragment == null) {
mMapFragment = new MapFragment();
}
mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.add(R.id.main_frame_layout, mMapFragment, mFragmentID);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
mFragmentTransaction.commit();
}
private void onClickMenutItem() {
mMapDownloadManagerFragment = new MapDownloadManagerFragment();
mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.main_frame_layout, mMapDownloadManagerFragment, mdmFragmentID);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
}
@Override
public void onBackPressed() {
Log.d(TAG, "Back stack count " + getFragmentManager().getBackStackEntryCount());
if( getFragmentManager().getBackStackEntryCount() == 0) {
finish();
} else {
getFragmentManager().popBackStack();
}
}
有人遇到过这个问题吗?我需要你的帮助。提前致谢。
现在我通过删除当前的 MapFragment 并将其替换为新的 MapFragment 解决了这个问题。
mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.remove(mMapFragment);
mMapFragment = null;
mMapFragment = new MapFragment();
mFragmentTransaction.add(R.id.main_frame_layout, mMapFragment, mFragmentID);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
mFragmentTransaction.commit();
仍在思考如何以最佳方式实施它。
我正在开发 FrameLayouts 以支持 Activity 加载不同的片段。第一个片段是 MapFragment,另一个是地图的 MapDownloadManagerFragment。
我对 popBackStack() 方法有疑问。 MapFragment 不显示任何地图。执行 popBackStack() 后仅显示白色背景。
代码如下:
private MapFragment mMapFragment = null;
private FragmentTransaction mFragmentTransaction;
private MapDownloadManagerFragment mMapDownloadManagerFragment;
protected void onCreate(Bundle savedInstanceState) {
if (mMapFragment == null) {
mMapFragment = new MapFragment();
}
mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.add(R.id.main_frame_layout, mMapFragment, mFragmentID);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
mFragmentTransaction.commit();
}
private void onClickMenutItem() {
mMapDownloadManagerFragment = new MapDownloadManagerFragment();
mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.main_frame_layout, mMapDownloadManagerFragment, mdmFragmentID);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
}
@Override
public void onBackPressed() {
Log.d(TAG, "Back stack count " + getFragmentManager().getBackStackEntryCount());
if( getFragmentManager().getBackStackEntryCount() == 0) {
finish();
} else {
getFragmentManager().popBackStack();
}
}
有人遇到过这个问题吗?我需要你的帮助。提前致谢。
现在我通过删除当前的 MapFragment 并将其替换为新的 MapFragment 解决了这个问题。
mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.remove(mMapFragment);
mMapFragment = null;
mMapFragment = new MapFragment();
mFragmentTransaction.add(R.id.main_frame_layout, mMapFragment, mFragmentID);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
mFragmentTransaction.commit();
仍在思考如何以最佳方式实施它。