Привет всем У меня есть активность, которая загружается после нажатия на элемент внутри моего списка.Android MapView Загрузка черного экрана
Эта активность показывает расположение внутри MapView, как это:
<FrameLayout
android:id="@+id/mapContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toEndOf="@+id/imageView"
android:layout_above="@+id/button"
android:layout_below="@+id/imageView"
android:layout_alignParentStart="true"
android:layout_marginTop="10dp" >
<TextView
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Loading Map..." />
</FrameLayout>
Проблема в том, что я хочу, чтобы показать карту на пользователя позже, если он/она нажимает на кнопку.
Но Активность загружается очень медленно и даже имеет черный пустой экран, прежде чем показывать что-либо. Это выглядит очень непрофессионально и кажется неправильным.
Сначала я попытался сделать MapView невидимым и показать его, когда пользователь нажимает кнопку, но он загружается, когда начинается действие.
I'am пытается следующий код:
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_event);
mapView = new MapView(SingleEvent.this);
mapView.onCreate(savedInstanceState);
com.google.android.gms.maps.MapView.LayoutParams mapParams = new com.google.android.gms.maps.MapView.LayoutParams(com.google.android.gms.maps.MapView.LayoutParams.MATCH_PARENT,220);
mapContainer = (FrameLayout) findViewById(R.id.mapContainer);
mapContainer.addView(mapView, mapParams);
Это один работают он показывает карту, но активность загружается долго с черным пустым экраном, пока не будет загружена моя деятельность.
Есть ли способ первой нагрузки деятельности и после этого нагрузки MapView на кнопку нажать?
I'am пытается сделать что-то вроде этого:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
mapView = new MapView(SingleEvent.this);
mapView.onCreate(savedInstanceState);
com.google.android.gms.maps.MapView.LayoutParams mapParams = new com.google.android.gms.maps.MapView.LayoutParams(com.google.android.gms.maps.MapView.LayoutParams.MATCH_PARENT,220);
mapContainer = (FrameLayout) findViewById(R.id.mapContainer);
mapContainer.addView(mapView, mapParams);
}
},1000);
Но с этим кодом, карта загружается разве его только показывает серую пустую сетку. Я думаю, что из-за savedInstanceState, но, возможно, есть работа вокруг?
Я попытался сохранить Bundle savedInstanceState, загрузив, как указано выше.
если карта только предположить, чтобы он был виден, когда пользователь преформ определенное действие, то должно быть действие, которое получает отображается, когда они делают это действие. Загрузка точки без гарантии того, что она будет отображаться, не является хорошей идеей – tyczj
Возможно, я смогу воспользоваться услугами как-нибудь? – K213
сервис не имеет UI – tyczj