Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
1

Googlemaps + onBackPressed

25.08.2016, 15:13. Просмотров 282. Ответов 4
Метки нет (Все метки)

в общем откуда то взялась проблема...
Имеется фрагмент №1 с картой с него переход на №2 с указанием точного "адреса ручками"
во втором фрагменте при сохранении адреса вызывается
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void savePoint(){
        TaxiOrder order = ((MainActivity) getActivity()).getOrder();
        if(bundlePosition == -1){
            order.getAddressList().add(bundleTaxiAddress);
        } else{
            try {
                order.getAddressList().set(bundlePosition,bundleTaxiAddress);
            } catch (Exception e) {
                Toast.makeText(getActivity(),"Ошибка!",Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
        }
        getActivity().onBackPressed();
    }
т.е. тупо сохраняем точку и жмет кнопку назад. При этом в области фрагментов - ничего не отображается, потому что в 1м фрагменте вызывается такая конструкция:
Java
1
2
3
4
5
6
7
8
9
10
@Override
    public void onDestroyView() {
        super.onDestroyView();
        if (!getActivity().isFinishing()) {
            FragmentManager fm = getActivity().getFragmentManager();
            if(mapFragment != null) {
                fm.beginTransaction().remove(mapFragment).commit();
            }
        }
    }
без нее никак, но и с ней все почему то перестало работать
Заметил когда поднял планку API приолжения до 5го андройда, на 4м все работало %) На вскидку поменялось только вот здесь(метод onCreateView):
Java
1
2
3
4
5
//api 21+
        mapFragment = (MapFragment) this.getChildFragmentManager().findFragmentById(R.id.container_map);
        //api20-
        //MapFragment mapFragment = (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.container_map);
        mapFragment.getMapAsync(this);
т.е. при переходу на 2й фрагмент вью первого удаляется и больше отрисовываться не хочет в onCreateView при возврате не заходит. Спасите, как поправить?
П.С. все фрагменты естесственно в стеке

Добавлено через 1 час 15 минут
Только что "откатил" до API 4.4 - проверил, работает!!! %) на 5м - 6м не пашет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2016, 15:13
Ответы с готовыми решениями:

Ошибка в методе onBackPressed
почему красным выделяется? подскажите кому не трудно :) p.s для остановки...

Обработать событие onBackPressed во фрагменте
У меня есть фрагмент который запускается через транзакцию и как можно...

При onBackPressed() фрагмент продолжает работать
Привет, я переопределил onBackPressed(), он показывает AlertDialog, но при этом...

GoogleMaps и эмулятор
Здравствуйте. Есть небольшая проблема с эмулятором и картами. Суть того, что я...

Автокомплит + GoogleMaps
У меня есть отдельно приложения, которые: первое приложение - осуществляет...

4
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 671
25.08.2016, 16:03 2
Покажи весь код и скажи что не работает. Я ничего не понял.
0
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
26.08.2016, 13:32  [ТС] 3
Mikalai,
Цитата Сообщение от klim76 Посмотреть сообщение
т.е. при переходу на 2й фрагмент вью первого удаляется и больше отрисовываться не хочет в onCreateView при возврате не заходит.
Добавлено через 21 час 27 минут
па ма ги те
0
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 671
26.08.2016, 13:39 4
Цитата Сообщение от Mikalai Посмотреть сообщение
Покажи весь код
....
0
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
26.08.2016, 13:59  [ТС] 5
Mikalai,
фрагмент1 с картой:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.test_map, null);
 
        bundleTaxiAddress = ((MainActivity) getActivity()).getTmpAdress();
        if ( bundleTaxiAddress != null ){
            bundleLatLon = new LatLng(bundleTaxiAddress.getLatitude(),bundleTaxiAddress.getLongitude());
        }
 
        locationAddress = (TextView) v.findViewById(R.id.location_address);
        getLocation = (ImageView) v.findViewById(R.id.location_find);
        setLocation = (ImageView) v.findViewById(R.id.location_edit);
        getLocation.setOnClickListener(this);
        setLocation.setOnClickListener(this);
        /*FrameLayout containerMap = (FrameLayout) rootView.findViewById(R.id.container_map);
        View mapView = super.onCreateView(inflater, container, savedInstanceState);
        containerMap.addView(mapView, new FrameLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT));*/
        //api 21+
        mapFragment = (MapFragment) this.getChildFragmentManager().findFragmentById(R.id.container_map);
        //api20-
        //mapFragment = (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.container_map);
        mapFragment.getMapAsync(this);
 
        final ClientApplication application = (ClientApplication) getActivity().getApplication();
        client = application.getClient();
        latitude = client.getLocation().getLatitude();
        longitude = client.getLocation().getLongitude();
        order = ((MainActivity) getActivity()).getOrder();
 
        return v;
    }
Java
1
2
3
4
5
6
7
8
9
10
@Override
    public void onDestroyView() {
        super.onDestroyView();
        if (!getActivity().isFinishing()) {
            FragmentManager fm = getActivity().getFragmentManager();
            if(mapFragment != null) {
                fm.beginTransaction().remove(mapFragment).commit();
            }
        }
    }
фрагмент2 - проскто нажать кнопку назад. От франмента 2 ничего не зависит. с карты переход на несколько фрагментов ни с одного назад(на фрагмент1 с картой) не возвращается корректно
0
26.08.2016, 13:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2016, 13:59

Всплывающее окно с GoogleMaps
Всем добрый день! Возникла проблема с созданием "мобильной карты". Есть...

Проложение пути в GoogleMaps
Здравствуйте. В приложение используются карты гугл. При загрузки карты...

Запутался в фрагментах и транзакциях с GoogleMaps?
есть активити, в которой по кнопке меняются фрагменты (их пока всего два), один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru