ArrayList<Marker> markers = new ArrayList<>();
markers.add(mMap.addMarker(new MarkerOptions().position(startLocationLatLng).title("Start Location").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))));
markers.add(mMap.addMarker(new MarkerOptions().position(finishLocationLatLng).title("Finish Location").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))));
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Marker marker : markers) {
builder.include(marker.getPosition());
}
LatLngBounds bounds = builder.build();
int padding = 300;
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.animateCamera(cu);
FirebaseDatabase.getInstance().getReference()
.child("users").child(uId).child("CurrentChallenge")
.child("Active").setValue("1");
Приложение вылетает после установки значения дочернего элемента «Active» в Firebase, но ошибка:
Ошибка при использовании newLatLngBounds (LatLngBounds, int): размер карты не может быть равен 0. Скорее всего, макет еще не произошло для вида карты.
Когда я удаляю часть значения настройки - все работает нормально.
Не могу понять, почему возникает эта ошибка, я попытался создать AsyncTask для настройки значения, также пытался вставить этот код в обратный вызов animateCamera-onFini sh, всегда та же ошибка.
* UPD: это немного странно, код beosis работает после замены newLatLngBounds построение, с простым:
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 16.0f));
Но этот код анимирует карту только для одного места, без возможности видеть оба маркера.
Есть мысли? Это что-то с нитками? Понятия не имею, как это можно связать ( LatLngBounds и FirebaseDatabase ).