如何手动重启谷歌地图片段

时间:2018-03-05 12:56:08

标签: java android google-maps android-fragments fragment-backstack

当地图片段第一次打开时,它会调用onMapReady并在其中添加一个标记并使用动画缩放。

我希望如果用户点击地图上的一个按钮,地图将重新启动,就好像它的开启一样,以缩放和诸如此类的开头。

我尝试使用下面的方法,当我点击按钮时,我会调用它,但它只会重新创建地图,但它没有调用onMapReady,因为它没有添加制造商或任何东西。!

public void reLoadFragment(Fragment fragment) {

    Fragment currentFragment = fragment;
    if (currentFragment instanceof MapTransportFragment_BusDriver) {
      FragmentTransaction fragTransaction = getActivity().getSupportFragmentManager().beginTransaction();
      fragTransaction.detach(currentFragment);
      fragTransaction.attach(currentFragment);
      fragTransaction.commit();
    }
  }

编辑#1

我使用以下三种方式调用该方法,它给出了同样的错误。

 /*1*/ reLoadFragment(this);

 /*2*/ reLoadFragment(MyMap.this);

 /*3*/ reLoadFragment(new MyMap()); // MyMap is the name of the current fragment.

1 个答案:

答案 0 :(得分:0)

但是,如果您只想重新启动片段,则意味着您要创建新片段。调用detachattach不会破坏fragment.So尝试下面的代码

 public void reLoadFragment(Fragment fragment) {

        Fragment currentFragment = fragment;
        if (currentFragment instanceof MapTransportFragment_BusDriver) {
          FragmentTransaction fragTransaction = getActivity().getSupportFragmentManager().beginTransaction();
          fragTransaction.replace(R.id.YourFragmentContainer,currentFragment,"TAG");

          fragTransaction.commit();
        }

  }