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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
klim76
19 / 13 / 2
Регистрация: 10.06.2016
Сообщений: 128
#1

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

20.07.2016, 15:07. Просмотров 170. Ответов 5
Метки нет (Все метки)

Расскажите товарищи опытные....
Имеется автивити с кучей фрагментов. пользователь может перемещаться от одного в другой, все перемещения кладутся в стек.
Идея какая - нужно "морфировать" "гамбургер" в стрелочку назад и обратно в зависимости от состояния стека. Тоюишь на первом фрагменте - гамбургей на всех остальных стрелки "назад".
Сейчас получается что при переходе с 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,219
20.07.2016, 19:14     Когда пересчитывается backstack ? #2
А можно расшифровать что значить "морфировать" "гамбургер" ?

Добавлено через 6 минут
"гамбургер" - это верхняя чтоли стрелочка назад да?
Паблито
2017 / 1759 / 548
Регистрация: 12.05.2014
Сообщений: 6,240
Завершенные тесты: 1
20.07.2016, 19:16     Когда пересчитывается backstack ? #3
ты по диагонали читаешь что ли?
написано
Цитата Сообщение от klim76 Посмотреть сообщение
"гамбургер" в стрелочку назад и обратно
значит это НЕ стрелочка назад
yura91
28 / 26 / 2
Регистрация: 23.10.2013
Сообщений: 2,219
20.07.2016, 19:22     Когда пересчитывается backstack ? #4
А гамбургер это значок менюшки вроди верно?
klim76
19 / 13 / 2
Регистрация: 10.06.2016
Сообщений: 128
21.07.2016, 09:53  [ТС]     Когда пересчитывается backstack ? #5
Цитата Сообщение от yura91 Посмотреть сообщение
А гамбургер это значок менюшки вроди верно?
"гамбургер-меню"
Миниатюры
Когда пересчитывается backstack ?  
klim76
19 / 13 / 2
Регистрация: 10.06.2016
Сообщений: 128
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 ?
Ответ Создать тему
Опции темы

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