Google Maps Android API v2 не отображает карту при изменении настроек

Google Maps Android API v2 не отображает карту при изменении настроек.

пример: когда пользователь нажимает кнопку "Мое местоположение", карта анимируется в соответствии с текущим местоположением пользователя, но не отображает карту.

public class MapView extends android.support.v4.app.FragmentActivity {

    private GoogleMap mMap;
    private UiSettings mUiSettings;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.map_view);

        setUpMapIfNeeded();
    }

    private void setUpMapIfNeeded() {
        // Do a null check to confirm that we have not already instantiated the map.
        if (mMap == null) {
            // Try to obtain the map from the SupportMapFragment.
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.googleMap))
                    .getMap();
            // Check if we were successful in obtaining the map.
            if (mMap != null) {
                setUpMap();
            }
        }
    }

    private void setUpMap() {

        mMap.setMyLocationEnabled(true);

        mUiSettings = mMap.getUiSettings();

        mUiSettings.setZoomControlsEnabled(true);
        mUiSettings.setMyLocationButtonEnabled(true);
        mUiSettings.setCompassEnabled(true);
    }

}

** layout/map_view **

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/googleMap"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          class="com.google.android.gms.maps.SupportMapFragment"/>

person DeadManSpirit    schedule 16.02.2013    source источник
comment
Карта появляется, когда вы открываете приложение, а затем исчезает, когда вы двигаетесь, или она просто не появляется вообще?   -  person Tyler    schedule 16.02.2013
comment
Появляется и исчезает, когда я перемещаю его, он не обновляется   -  person DeadManSpirit    schedule 16.02.2013
comment
Что вы используете для обновления вашего местоположения? МестоположениеСлушатель? Или что-то другое? Утром посмотрю внимательнее, пока это выглядит очень странно. А пока убедитесь, что вы прочитали руководство разработчика о том, как это сделать. Я знаю, что при первой попытке я сделал пару ошибок: ссылка   -  person Tyler    schedule 17.02.2013
comment
спасибо за помощь приятель   -  person DeadManSpirit    schedule 17.02.2013
comment
Это весь ваш код? Я говорю это только потому, что это выглядит правильно. Если вы можете получить карту изначально, значит, вы правильно настроили карту. Вы видели пример приложения Google Maps? Это дает несколько действительно хороших примеров того, как использовать карту, перемещаться и изменять параметры на карте. Не видя ничего другого в вашем коде, я бы посоветовал взглянуть на это примерное приложение в файлах SDK. Инструкции по его настройке находятся здесь. Это мне очень помогло.   -  person Tyler    schedule 18.02.2013


Ответы (1)


Вы пропустили важный код в OnCreate(), как показано ниже. Добавьте этот код ниже;

@Override
protected void onResume() {
    super.onResume();
    setUpMapIfNeeded();
}

Ваш код должен быть таким;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.map_view);

    setUpMapIfNeeded();
}

@Override
protected void onResume() {
    super.onResume();
    setUpMapIfNeeded();
}

private void setUpMapIfNeeded() {
    // Do a null check to confirm that we have not already instantiated the map.
    if (mMap == null) {
        // Try to obtain the map from the SupportMapFragment.
        mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.googleMap))
                .getMap();
        // Check if we were successful in obtaining the map.
        if (mMap != null) {
            setUpMap();
        }
    }
}

private void setUpMap() {...

Удачи...

person Community    schedule 22.02.2013