cuốn sách gpt4 ai đã làm

MapView.onMapReady chưa bao giờ gọi Fragment để tải bản đồ Google trong MapView

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:36:01 26 4
mua khóa gpt4 Nike

Tôi sẽ cố gắng làm một việc gọi là mảnh Roete Một đoạn hiển thị bản đồ trong ứng dụng Android của tôi. Nếu tôi gỡ lỗi mã của mình, tôi sẽ thấy phương thức onMapReady không bao giờ được gọi nên bản đồ không được tải.

Đoạn này được triển khai khi cần thiết OnMapReadyGọi lại,hiện hữu trênCreateView , tôi có Chế độ xem bản đồ và được gọi getMapAsync. Nếu tôi đặt một điểm dừng trên phương thức đó thì nó luôn bị tấn công,onMapReady Điểm ngắt trong không bao giờ được nhấn. Không có ngoại lệ được ném.

Tôi đang ở trong hồ sơ res/values/google_maps_api.xml Ngoài ra còn có khóa API Google Maps hợp lệ ở định dạng .

Đây là mã của tôi:



android:layout_width="match_parent"
android:layout_height="match_parent">

<>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map" />


lớp công khai RoeteFragment mở rộng triển khai Fragment OnMapReadyCallback {

Chế độ xem bản đồ MapView riêng tư;
Roete tĩnh riêng _roete;

@Ghi đè
khoảng trống công khai onCreate(Gói đã lưuInstanceState) {
super.onCreate(savedInstanceState);
}

@Ghi đè
Chế độ xem công khai trênCreateView(Trình tăng LayoutInflater, vùng chứa ViewGroup, Gói đã lưuInstanceState) {
Xem view = inflater.inflate(R.layout.fragment_roete, container, false);
mapView = (MapView) view.findViewById(R.id.map);
mapView.getMapAsync(cái này);
quay lại xem;
}

@Ghi đè
khoảng trống công khai trênMapReady(GoogleMap googleMap) {

if (_roete != null && _roete.getAankomstLocatie() != null && _roete.getVertrekLocatie() != null) {
LatLng aankomst = LatLng mới(_roete.getAankomstLocatie().getLatitude(), _roete.getAankomstLocatie().getLongitude());
googleMap.addMarker(new MarkerOptions().position(aankomst).title("aankomst"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(aankomst));

LatLng vertrek = LatLng mới(_roete.getVertrekLocatie().getLatitude(), _roete.getVertrekLocatie().getLongitude());
googleMap.addMarker(new MarkerOptions().position(vertrek).title("vertrek"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(vertrek));
}
}

Đoạn tĩnh công khai newInstance() {
trả về RoeteFragment mới ();
}

public static Fragment newInstance(Roete roete) {
_roete = roete;
trả về newInstance();
}
}

Bạn có thể gửi một lỗi trong mã của tôi không?

câu trả lời hay nhất

đọcChế độ xem bản đồ documentation .đặc biệt:

Người dùng của lớp này phải chuyển tiếp tất cả các phương thức vòng đời từ lớp Hoạt động or mảnh vỡ chứa chế độ xem này đến các chế độ xem tương ứng trong lớp này. Cụ thể, bạn phải chuyển tiếp các phương thức sau:

  • onCreate(Gói)
  • onResume()
  • onPause()
  • onDestroy()
  • onSaveInstanceState()
  • onLowMemory()

Về android - MapView.onMapReady chưa bao giờ gọi Fragment để tải bản đồ Google trong MapView, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/36809284/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress