MapFragment становятся не отзывчивыми после того, как будут вращаться

Мой probleme прост, я добавляю 4 FrameLayout к своему xml и добавляю 4 MapFragment кодом в тех контейнерах.

как это:


  
    
    
  
  
    
    
  

и в моей деятельности

public class MultiGoogleMapActivity extends FragmentActivity {

    private GoogleMap mMap;
    private GoogleMap mMapUp;
    private GoogleMap mMapMiddle;
    private GoogleMap mMapLow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_multi_google_map);

mMap1Fragment = SupportMapFragment.newInstance();
    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                        .beginTransaction();
                fragmentTransaction.add(R.id.map1_container, mMap1Fragment, MAP_FRAGMENT_TAG);
                fragmentTransaction.commit();
mMap2Fragment = SupportMapFragment.newInstance(new GoogleMapOptions().zoomControlsEnabled(false).zoomGesturesEnabled(false).compassEnabled(false).rotateGesturesEnabled(false).scrollGesturesEnabled(false));
    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                        .beginTransaction();
                fragmentTransaction.add(R.id.map2_container, mMap2Fragment, MAP_FRAGMENT_TAG);
                fragmentTransaction.commit();
mMap3Fragment = SupportMapFragment.newInstance(new GoogleMapOptions().zoomControlsEnabled(false).zoomGesturesEnabled(false).compassEnabled(false).rotateGesturesEnabled(false).scrollGesturesEnabled(false));
    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                        .beginTransaction();
                fragmentTransaction.add(R.id.map3_container, mMap3Fragment, MAP_FRAGMENT_TAG);
                fragmentTransaction.commit();
mMap4Fragment = SupportMapFragment.newInstance(new GoogleMapOptions().zoomControlsEnabled(false).zoomGesturesEnabled(false).compassEnabled(false).rotateGesturesEnabled(false).scrollGesturesEnabled(false));
    FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                        .beginTransaction();
                fragmentTransaction.add(R.id.map4_container, mMap4Fragment, MAP_FRAGMENT_TAG);
                fragmentTransaction.commit();

        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) {
            mMap = mMap1Fragment.getMap();
        }
        if (mMapUp == null) {
            mMapUp = mMap2Fragment.getMap();
            mMapUp.setOnMapClickListener(new OnMapClickListener() {

                public void onMapClick(LatLng arg0) {
                    CameraPosition cp = mMapUp.getCameraPosition();
                    mMapUp.moveCamera(CameraUpdateFactory.newCameraPosition(mMap.getCameraPosition()));
                    mMap.moveCamera(CameraUpdateFactory.newCameraPosition(cp));
                }
            });

        }
        if (mMapMiddle == null) {
            mMapMiddle = mMap3Fragment.getMap();
            mMapMiddle.setOnMapClickListener(new OnMapClickListener() {

                public void onMapClick(LatLng arg0) {
                    CameraPosition cp = mMapMiddle.getCameraPosition();
                    mMapMiddle.moveCamera(CameraUpdateFactory
                            .newCameraPosition(mMap.getCameraPosition()));
                    mMap.moveCamera(CameraUpdateFactory
                            .newCameraPosition(cp));
                }
            });
        }
        if (mMapLow == null) {
            mMapLow = mMap4Fragment.getMap();
            mMapLow.setOnMapClickListener(new OnMapClickListener() {

                public void onMapClick(LatLng arg0) {
                    CameraPosition cp = mMapLow.getCameraPosition();
                    mMapLow.moveCamera(CameraUpdateFactory
                            .newCameraPosition(mMap.getCameraPosition()));
                    mMap.moveCamera(CameraUpdateFactory
                            .newCameraPosition(cp));
                }
            });
        }
        initializeMapsPositions();
    }

    private void initializeMapsPositions() {
        if (mMap != null) {
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
                    47.224217, -1.631409), 16));
        }
        if (mMapUp != null) {
            mMapUp.setOnCameraChangeListener(new OnCameraChangeListener() {

                public void onCameraChange(CameraPosition arg0) {
                    mMapUp.animateCamera(CameraUpdateFactory.newLatLngBounds(
                            new LatLngBounds(new LatLng(-21.417276,55.039925),
                                        new LatLng(-20.815174,56.008095)),
                            10));
                    mMapUp.setOnCameraChangeListener(null);
                }
            });

        }
        if (mMapMiddle != null) {
            mMapMiddle.setOnCameraChangeListener(new OnCameraChangeListener() {

                public void onCameraChange(CameraPosition arg0) {
                    mMapMiddle.animateCamera(CameraUpdateFactory.newLatLngBounds(
                            new LatLngBounds(new LatLng(14.337573,-61.441246), 
                                            new LatLng(14.947439,-60.603539)), 
                            10));
                    mMapMiddle.setOnCameraChangeListener(null);
                }
            });
        }
        if (mMapLow != null) {
            mMapLow.setOnCameraChangeListener(new OnCameraChangeListener() {

                public void onCameraChange(CameraPosition arg0) {
                    mMapLow.animateCamera(CameraUpdateFactory.newLatLngBounds(
                            new LatLngBounds(new LatLng(17.596903,-78.448288), 
                                            new LatLng(18.643643,-76.207077)), 
                            10));
                    mMapLow.setOnCameraChangeListener(null);
                }
            });

        }

    }

}

probleme: когда я вращаю устройство, MapFragments не делают resond, чтобы больше касаться событий...

Кто-либо имел тот же самый probleme и решал его?

3
nl ja de
поместите свой код здесь
добавлено автор Dixit Patel, источник

1 ответы

У меня была та же самая проблема и после того, как много поиска неисправностей обнаружило, что в контейнере были многократные фрагменты карты.

Так, я решил проблему при помощи

FragmentTransaction.replace

вместо

.add
5
добавлено
Это работало на меня, Спасибо!
добавлено автор Super Chafouin, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)