1

当用户单击地图时,我必须将一个片段包含地图和另一个片段以显示图钉的详细信息。当用户单击详细信息片段中的后退按钮时,我将覆盖后退按钮以再次显示地图。

fragmentManager.beginTransaction().replace(R.id.content_frame, mapfragment).commit();

当我这样做时,地图正在重新加载。我也尝试使用 addToBackStack 但没有运气。任何人都可以建议如何解决它..

4

3 回答 3

1

看看这个。您需要保存片段的状态。

于 2013-12-11T05:31:46.260 回答
1

使用以下代码:

getSupportFragmentManager().beginTransaction()
                           .add(detailFragment, "detail")
                           // Add this transaction to the back stack
                           .addToBackStack()
                           .commit();

删除您在 onBackPressed 中编写的任何内容。

试着让我知道。

于 2013-12-11T05:37:29.147 回答
0

创建SupportMapFragment后,调用方法setRetainInstance()

public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {

private GoogleMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);
    FragmentManager fm = getSupportFragmentManager();
    SupportMapFragment smf = (SupportMapFragment) fm.findFragmentById(R.id.map);
    smf.setRetainInstance(true);
    smf.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    this.map = googleMap;
    // put some markers
}

}

欲了解更多信息,请访问此处

于 2015-06-05T13:33:04.053 回答