Форум программистов, компьютерный форум CyberForum.ru

Когда пересчитывается backstack ? - Android

Восстановить пароль Регистрация
 
klim76
10 / 10 / 2
Регистрация: 10.06.2016
Сообщений: 105
20.07.2016, 15:07     Когда пересчитывается backstack ? #1
Расскажите товарищи опытные....
Имеется автивити с кучей фрагментов. пользователь может перемещаться от одного в другой, все перемещения кладутся в стек.
Идея какая - нужно "морфировать" "гамбургер" в стрелочку назад и обратно в зависимости от состояния стека. Тоюишь на первом фрагменте - гамбургей на всех остальных стрелки "назад".
Сейчас получается что при переходе с 1 на 2й фрагмент остается гамбургер, с 2 на 3й - стрелочка А при возврате с 3 на 2 остается стрелочка (что правильно) и далее при возврате на 1й фрагмент снова гамбургер.
Код незамысловат, но нуда его вотнуть - непонятно?
Java
1
2
3
4
5
6
7
8
9
10
11
12
 public void syncActionBarArrowState() {
        int backStackEntryCount =
                getFragmentManager().getBackStackEntryCount();
        if(backStackEntryCount != 0){
            toggle.setDrawerIndicatorEnabled(false);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
        else{
            toggle.setDrawerIndicatorEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }
    }
- метод в активити.
его я пытаюсь дергать в каждом фрагменте в
Java
1
2
3
4
5
@Override
    public void onStart() {
        super.onStart();
        ((MainActivity) getActivity()).syncActionBarArrowState();
    }
P.S.
Вот такой вот "костыль" работает - ,но не в костылях же счастье
Java
1
2
3
4
5
6
7
8
9
10
@Override
    public void onResume() {
        super.onResume();
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                ((MainActivity) getActivity()).syncActionBarArrowState();
            }
        }, 500);
    }
Может кто то знает как проще реализовать то что мне требуется?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2016, 15:07     Когда пересчитывается backstack ?
Посмотрите здесь:

Android Проверить интернет даже когда есть wifi
Передвинуть view, когда отображается клавиатура Android
AlarmManager не срабатывает, когда телефон засыпает Android
Работает ли код когда приложение закрыто ? Android
Android Ошибка когда ставлю галочку в списке
Сервис останавливается когда закрывается приложение Android
Когда вызывается конструктор дописанного view? Android
Android Notification когда надо
BackStack и Фрагменты Android
Запущенный service не работает, когда нет процесса Android
Поднять элементы когда клавиатура выезжает Android
Когда вызвать getWidth() у виджета? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,136
20.07.2016, 19:14     Когда пересчитывается backstack ? #2
А можно расшифровать что значить "морфировать" "гамбургер" ?

Добавлено через 6 минут
"гамбургер" - это верхняя чтоли стрелочка назад да?
Паблито
не спать!
1879 / 1613 / 497
Регистрация: 12.05.2014
Сообщений: 5,822
Завершенные тесты: 1
20.07.2016, 19:16     Когда пересчитывается backstack ? #3
ты по диагонали читаешь что ли?
написано
Цитата Сообщение от klim76 Посмотреть сообщение
"гамбургер" в стрелочку назад и обратно
значит это НЕ стрелочка назад
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,136
20.07.2016, 19:22     Когда пересчитывается backstack ? #4
А гамбургер это значок менюшки вроди верно?
klim76
10 / 10 / 2
Регистрация: 10.06.2016
Сообщений: 105
21.07.2016, 09:53  [ТС]     Когда пересчитывается backstack ? #5
Цитата Сообщение от yura91 Посмотреть сообщение
А гамбургер это значок менюшки вроди верно?
"гамбургер-меню"
Миниатюры
Когда пересчитывается backstack ?  
klim76
10 / 10 / 2
Регистрация: 10.06.2016
Сообщений: 105
25.07.2016, 15:06  [ТС]     Когда пересчитывается backstack ? #6
все было а поверхности...
Java
1
2
fragmentManager = getFragmentManager();
        fragmentManager.addOnBackStackChangedListener(this);
ну и соответственно переопределяем метод
Java
1
2
@Override
    public void onBackStackChanged() {}
как вам нужно
Yandex
Объявления
25.07.2016, 15:06     Когда пересчитывается backstack ?
Ответ Создать тему
Опции темы

Текущее время: 15:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru