Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

20.07.2016, 15:07. Просмотров 204. Ответов 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);
    }
Может кто то знает как проще реализовать то что мне требуется?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2016, 15:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Когда пересчитывается backstack ? (Программирование Android):

BackStack и Фрагменты - Программирование Android
Из активити запускаю Фрагмент А, из Фрагмента А запускаю фрагмент Б, из Фрагмента Б запускаю фрагмент В. Если добавлять каждый фрагмент в...

Очистка BackStack Activity, без Intent - Программирование Android
У меня есть окно авторизации, и окно регистрации. То и то это активити, на которых расположены по одному фрагменту. Из регистрации...

Не пересчитывается книга при повторном выполнении программы - VBA
Доброго времени суток, форумчане! Столкнулся со следующей проблемой. В таймере прописан код, который приведен ниже. При первом открытии...

Расчетное поле: пересчитывается, только после нажатия обновить - MS Access
Есть расчетное поле на форме, оно изменяется в зависимости от значения в другом поле. При изменении значения в зависящем поле оно не...

Как Насипов узнал, что в цикле максимальное значение счетчика цикла пересчитывается на каждой итерации? - 1С
Курс ведет Гилев, но они вместе с Насиповым сейчас делают этот курс. Не суть. В общем, процитирую близко к тексту. Для Индекс =...

Когда нужно использовать структуры, когда классы, а когда словарь? - C#
Хеллоу. Не могу понять, когда, что, нужно использовать. Допустим мне нужно получить объект, который имеет список объектов. И...

5
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
20.07.2016, 19:14 #2
А можно расшифровать что значить "морфировать" "гамбургер" ?

Добавлено через 6 минут
"гамбургер" - это верхняя чтоли стрелочка назад да?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
20.07.2016, 19:16 #3
ты по диагонали читаешь что ли?
написано
Цитата Сообщение от klim76 Посмотреть сообщение
"гамбургер" в стрелочку назад и обратно
значит это НЕ стрелочка назад
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
20.07.2016, 19:22 #4
А гамбургер это значок менюшки вроди верно?
0
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 142
21.07.2016, 09:53  [ТС] #5
Цитата Сообщение от yura91 Посмотреть сообщение
А гамбургер это значок менюшки вроди верно?
"гамбургер-меню"
0
Миниатюры
Когда пересчитывается backstack ?  
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 142
25.07.2016, 15:06  [ТС] #6
все было а поверхности...
Java
1
2
fragmentManager = getFragmentManager();
        fragmentManager.addOnBackStackChangedListener(this);
ну и соответственно переопределяем метод
Java
1
2
@Override
    public void onBackStackChanged() {}
как вам нужно
0
25.07.2016, 15:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2016, 15:06
Привет! Вот еще темы с ответами:

Когда стоит использовать класс, а когда лучше обойтись без них? - C++
Когда стоит использовать класс, а когда лучше обойтись без них? Когда следует использовать несколько классов? Вот, например. Программа...

Где можно посмотреть когда включался и когда выключался компьютер? - Windows 8, 8.1
Всем привет! Где я смогу посмотреть когда включался и когда выключался компьютер? Мне сказали, что есть какой-то журнал событий. ...

Когда страница не загружена, показывать div, когда загрузилась, скрыть - JavaScript
Здравствуйте. Встретилась такая проблема: ни один скрипт по скрытию блока при полной загрузке не работает. Вот пример: ...

Как узнать когда программу запустил User, а когда автозагрузка ? - Visual Basic .NET
Как узнать когда программу запустил User, а когда автозагрузка ?


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

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

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