MapView внутри пользовательского RecyclerViewAdapterAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 MapView внутри пользовательского RecyclerViewAdapter

Сообщение Anonymous »

Я пытаюсь реализовать RecyclerView, содержащий CardViews, внутри каждого из которых находится MapView.
Проблема в том, что MapView, инициализированный в пользовательском адаптере, не загружается, пока вы не нажмете на него.
Как уже упоминалось здесь: Android MapView не загружается, пока вы нажимаете на вид карты
вы можете решить проблему, переопределив onResume().
Я попробовал это следующим образом:

Код: Выделить всё

@Override
public void onResume() {
if(LocationsAdapter.ViewHolder.mapView != null) {
LocationsAdapter.ViewHolder.mapView.onResume();
}

super.onResume();
}
Честно говоря, я просто понятия не имел, как переопределить onResume каким-либо другим способом, пожалуйста, простите меня, если я нарушил здесь определенные правила программирования.
Я сделал MapView как общедоступный статический объект внутри ViewHolder, созданный в LocationsAdapter. Кажется, это не работает, карта по-прежнему пуста.

ViewHolder внутри адаптера реализует OnMapReadyCallback.

Код: Выделить всё

public static class ViewHolder extends RecyclerView.ViewHolder implements OnMapReadyCallback

...

@Override
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap;
Location location = locations.get(getAdapterPosition());
this.googleMap.addMarker(new MarkerOptions().position(location.getLatlng()).title(location.getName()));
this.googleMap.moveCamera(CameraUpdateFactory.newLatLng(location.getLatlng()));
this.googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location.getLatlng(), 7.0f));
}
Эти два метода вызываются при вызове ViewHolder.

Код: Выделить всё

mapView.onCreate(null);
mapView.getMapAsync(this);
Другая статья, посвященная этой проблеме, пока не получила ответа: MapView внутри CardView не загружает карту.

Моя цель то есть загрузить карту независимо от того, в каком жизненном цикле в данный момент находится фрагмент.
Я предполагаю, что для этой проблемы вам не понадобятся ни адаптер, ни фрагмент, ни XML. Если да, дайте мне знать, пожалуйста.

Подробнее здесь: https://stackoverflow.com/questions/519 ... iewadapter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»