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

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

20.07.2016, 15:07. Просмотров 223. Ответов 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 и Фрагменты
Из активити запускаю Фрагмент А, из Фрагмента А запускаю фрагмент Б, из...

Очистка BackStack Activity, без Intent
У меня есть окно авторизации, и окно регистрации. То и то это активити, на...

При открытии документов пересчитывается вид
Привет всем! есть отчет под вэбом. Строит его агент, который ползет по виду...

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

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

Как Насипов узнал, что в цикле максимальное значение счетчика цикла пересчитывается на каждой итерации?
Курс ведет Гилев, но они вместе с Насиповым сейчас делают этот курс. Не суть. ...

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

Добавлено через 6 минут
"гамбургер" - это верхняя чтоли стрелочка назад да?
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
20.07.2016, 19:16 #3
ты по диагонали читаешь что ли?
написано
Цитата Сообщение от klim76 Посмотреть сообщение
"гамбургер" в стрелочку назад и обратно
значит это НЕ стрелочка назад
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,317
20.07.2016, 19:22 #4
А гамбургер это значок менюшки вроди верно?
0
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
21.07.2016, 09:53  [ТС] #5
Цитата Сообщение от yura91 Посмотреть сообщение
А гамбургер это значок менюшки вроди верно?
"гамбургер-меню"
0
Миниатюры
Когда пересчитывается backstack ?  
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
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
Привет! Вот еще темы с решениями:

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

Когда стоит использовать класс, а когда лучше обойтись без них?
Когда стоит использовать класс, а когда лучше обойтись без них? Когда следует...

Когда нужно ставить скобки для функций, а когда нет
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> ...

Где можно посмотреть когда включался и когда выключался компьютер?
Всем привет! Где я смогу посмотреть когда включался и когда выключался...


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

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

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