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

问题描述 投票:0回答:1

当地图片段第一次打开时,它会调用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.
java android google-maps android-fragments fragment-backstack
1个回答
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();
        }

  }
© www.soinside.com 2019 - 2024. All rights reserved.