gpt4 book ai didi

java - 我的 fragment 显示白屏而不是谷歌地图,为什么?

转载 作者:行者123 更新时间:2023-12-05 00:06:57 26 4
gpt4 key购买 nike

我必须在主 Activity 中为 PagerView 设置 map fragment 。这是 fragment 的代码。

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.doctorfinderapp.doctorfinder.R;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
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 DoctorMapsFragment extends Fragment implements OnMapReadyCallback {

private GoogleMap googleMap;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.doctor_maps_fragment, container, false);
SupportMapFragment mapFragment = SupportMapFragment.newInstance();
getChildFragmentManager().beginTransaction().add(R.id.map,mapFragment);
mapFragment.getMapAsync(this);
return view;

}

@Override
public void onMapReady(GoogleMap gMap) {
googleMap = gMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}

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

@Override
public void onPause() {
super.onPause();
}

@Override
public void onDestroy() {
super.onDestroy();
}

@Override
public void onLowMemory() {
super.onLowMemory();
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
}

这是 doctor_maps_fragment.xml

<?xml version="1.0" encoding="utf-8"?>  
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map" />

我该如何解决?当我留在 map 上时,布局显示白屏,我不知道是什么问题。

最佳答案

很多事情,您的布局是错误的,因为您使用的是“MapView”,所以没有“android:name”属性。

如果您想使用 MapView 而不是 SupprtMapFragment,请将您的布局更改为:

<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />

你还必须调用 mapViews 的 onCreate 函数,否则什么都不会显示,所以将你的 onCreateView 更改为:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.doctor_maps_fragment, container, false);
mMapView = (MapView) view.findViewById(R.id.map);
mMapView.onCreate(null);
mMapView.getMapAsync(this);
return view;
}

关于java - 我的 fragment 显示白屏而不是谷歌地图,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328427/

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