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

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

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

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

20.07.2016, 15:07. Просмотров 183. Ответов 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 ?
Посмотрите здесь:

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

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

Notification когда надо - Программирование Android
Надо сделать показ Notification в указаное время....Понимаю что роботать надо с Service i Notification... Подкиньте какието стати, уроки,...

Когда вызвать getWidth() у виджета? - Программирование Android
Здравствуйте, Всем. Необходимо узнать в приложении в пикселях ширину виджета. Использую getWitdth()... Но где его вызвать? На...

Узнать когда завершился Thread - Программирование Android
Допустим я запустил поток из другого потока и в этом другом потоке хочу узнать когда завершится(выполнит свою задачу) тот поток что я...

AlarmManager не срабатывает, когда телефон засыпает - Программирование Android
Использую AlarmManager. Все работает хорошо, но когда телефон не спит. Стоит ему уснуть и процесс не выполнится. Подскажите в какую сторону...

Работает ли код когда приложение закрыто ? - Программирование Android
Не могу понять, должен ли этот код работать когда приложение закрыто. При реальных тестах не работает мне кажется. Вот сам код: ...

Поднять элементы когда клавиатура выезжает - Программирование Android
Привет, не поднимает элементы когда клавиатура выкатывает (Клавиатура закрывает кнопку) 1. В манифесте прописывал ...

Передвинуть view, когда отображается клавиатура - Программирование Android
Есть необходимость передвинуть поля для ввода выше, когда открывается клавиатура для ввода. Аналог - приложение для vk или facebook. ...

Ошибка когда ставлю галочку в списке - Программирование Android
Здравствуйте, вообщем в одной активити список, жму в этой активити кнопку добавить и перехожу на другую активити, там ввожу имя для списка...


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

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

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

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