Tôi đang cố gắng để có được một bản đồ từ một SupportMapFragment nhưng nó trả về null. Từ những gì tôi đọc điều này có thể là do mảnh vỡ chưa được hiển thị đầy đủ và do đó không có bản đồ nào tồn tại ?! Tôi đã thử sửa nó bằng cách sử dụng executePendingTransactions() nhưng không thành công cho đến nay.mapFragment.getMap() trả về null
Bất kỳ ý tưởng nào về cách khắc phục sự cố?
Đây là mã
private GoogleMap map;
private SupportMapFragment mapFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
//...
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_mission2);
GoogleMapOptions mapOptions = new GoogleMapOptions();
mapOptions.mapType(GoogleMap.MAP_TYPE_NORMAL)
.compassEnabled(true)
.rotateGesturesEnabled(false)
.tiltGesturesEnabled(false);
android.support.v4.app.FragmentManager myFragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentManager.enableDebugLogging(true);
mapFragment = SupportMapFragment.newInstance(mapOptions);
FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction();
fragmentTransaction.add(R.id.mapFragment, mapFragment);
fragmentTransaction.commit();
myFragmentManager.executePendingTransactions();
if(mapFragment == null) Base.log("mapFragment==null");
if(map==null){
map = mapFragment.getMap();
Base.log("map should have been initialized");
if(map==null) Base.log("map still null");
}
}
Và file layout:
<fragment
android:id="@+id/mapFragment"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Nó trả về các bản ghi sau
V/FragmentManager(24224): add: SupportMapFragment{4078c4b8 id=0x7f06003d}
V/FragmentManager(24224): Allocated fragment index SupportMapFragment{4078c4b8 #1 id=0x7f06003d}
V/FragmentManager(24224): moveto CREATED: SupportMapFragment{4078c4b8 #1 id=0x7f06003d}
D/EMR (24224): map should have been initialized
D/EMR (24224): map still null
đây đã tuyên bố bạn biến 'mapFragment'? – yugidroid
Có phải tôi đã khai báo (chỉnh sửa phần mã, xem ở trên) – cos4
Có phải nó đã được khởi tạo không? Nếu không, nó sẽ giống như không có gì, tức là, 'null'. – yugidroid