gpt4 book ai didi

android - 如何将 MapsActivity 插入 fragment 容器?

转载 作者:行者123 更新时间:2023-11-29 19:46:16 26 4
gpt4 key购买 nike

我在默认的 MapsActivity 上有这段代码:

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}

这在抽屉导航 MainActivity 上

MapsActivity fragment = new MapsActivity();
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();

我可以设法使其与其他 fragment 一起使用的第二个代码,但带有 map 的 fragment 除外。有什么问题吗?

最佳答案

如果您想从 Activity 控制 SupportMapFragment,the answer from cricket_007将正常工作。

如果您想要自定义功能,并且希望将其保留在 Fragment 中,您可以创建一个扩展 SupportMapFragment 的 Fragment,例如:

public class MyCustomMapFragment extends SupportMapFragment 
implements OnMapReadyCallback {

private GoogleMap mMap;

public MyCustomMapFragment () {
}

@Override
public void onResume() {
super.onResume();

setUpMapIfNeeded();
}

private void setUpMapIfNeeded() {

if (mMap == null) {
getMapAsync(this);
}
}

@Override
public void onMapReady(GoogleMap googleMap) {

mMap = googleMap;
mMap.setMyLocationEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
mMap.getUiSettings().setMapToolbarEnabled(false);
}

}

然后您可以使用 FragmentTransaction 将容器替换为您的自定义 SupportMapFragment:

MyCustomMapFragment fragment = new MyCustomMapFragment();
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();

关于android - 如何将 MapsActivity 插入 fragment 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37580267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com