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();

仍在思考如何以最佳方式实施它。