Size: a a a

Cicerone Chat (RUS)

2019 October 15

L

Leff in Cicerone Chat (RUS)
Спасибо, завтра буду разбираться дальше
источник
2019 October 22

GS

Georgii Solovev in Cicerone Chat (RUS)
Всем привет, такой вопросец

Есть фрагмет А, в нем добавляю с стек сначала фрагмент В потом С. В чайлдфрагментменеджер, тобишь А это FlowFragment. У фрагментов В и С есть джетпаковская вьюмодель.

Далее происходят следующие переходы: открывается фрагмент А, внутри открывается В и затем navigateTo(C). Потом я делаю поворот экрана. У фрагмента В вызывается onDestroy, но onCreate не вызывается потом (что как бы логично, он скрыт). При этом у вьюмодели В не вызывается onCleared. Далее я закрываю фрагмент А.

Что получается по итогу, у фрагментов А и С нормально вызвались onDestroy и onCleared у вьюмоделей. А у фрагмента B вьюмодель так и не почистилась, ведь onDestory был вызван тогда при смене конфигурации, а вью модель переживает смену конфигурации. И когда я заново создаю вью модель у меня создается новая, а старая так и продолжает висеть в памяти.

Вот не могу понять я где-то натупил или так и должно быть
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Georgii Solovev
Всем привет, такой вопросец

Есть фрагмет А, в нем добавляю с стек сначала фрагмент В потом С. В чайлдфрагментменеджер, тобишь А это FlowFragment. У фрагментов В и С есть джетпаковская вьюмодель.

Далее происходят следующие переходы: открывается фрагмент А, внутри открывается В и затем navigateTo(C). Потом я делаю поворот экрана. У фрагмента В вызывается onDestroy, но onCreate не вызывается потом (что как бы логично, он скрыт). При этом у вьюмодели В не вызывается onCleared. Далее я закрываю фрагмент А.

Что получается по итогу, у фрагментов А и С нормально вызвались onDestroy и onCleared у вьюмоделей. А у фрагмента B вьюмодель так и не почистилась, ведь onDestory был вызван тогда при смене конфигурации, а вью модель переживает смену конфигурации. И когда я заново создаю вью модель у меня создается новая, а старая так и продолжает висеть в памяти.

Вот не могу понять я где-то натупил или так и должно быть
Привет. Это вопрос в @android_ru про андроид компоненты. Я не могу помочь, так как мы их не используем
источник
2019 October 24

S

Stanislav in Cicerone Chat (RUS)
Всем привет. Подскажите, как можно решить такую проблему.

Есть 3 фрагмента: A, B и C. Переходы осуществляются в следующем порядке: A->B->C. Переход A->B выолняется через
navigateTo()
переход B->C выполняется через
replaceScreen()


Анимация переходов для фрагментов задаётся как в этом комменте: https://t.me/Cicerone_RUS/7460

Трабла в том, что при переходе B->C фрагмент B уходит с экрана анимацией
popExit
(4-й параметр в setCustomAnimations() )
А нужно, чтобы уходил анимацией
exit
(2-й параметр) , как при обычном переходе.
Как можно этого добиться?
источник

L

Little Panda 🐼 in Cicerone Chat (RUS)
Stanislav
Всем привет. Подскажите, как можно решить такую проблему.

Есть 3 фрагмента: A, B и C. Переходы осуществляются в следующем порядке: A->B->C. Переход A->B выолняется через
navigateTo()
переход B->C выполняется через
replaceScreen()


Анимация переходов для фрагментов задаётся как в этом комменте: https://t.me/Cicerone_RUS/7460

Трабла в том, что при переходе B->C фрагмент B уходит с экрана анимацией
popExit
(4-й параметр в setCustomAnimations() )
А нужно, чтобы уходил анимацией
exit
(2-й параметр) , как при обычном переходе.
Как можно этого добиться?
воткнуть проверку(if-else) на команду, текущий фрагмент, след фрагмент. и если подходят по вашим критериям задать другие анимации.
источник
2019 October 25

S

Stanislav in Cicerone Chat (RUS)
Спасибо за ответ. Проблема решилась, но появился побочный эффект😄

Код добавления анимации выглядит примерно так:
override fun setupFragmentTransaction(command: Command?, currentFragment: Fragment?, nextFragment: Fragment?, fragmentTransaction: FragmentTransaction?) {
       if (command is Forward
           && currentFragment is A
           && nextFragment is B{
         fragmentTransaction?.apply {
           setCustomAnimations(
               R.anim.slide_in_right, android.R.anim.fade_out, android.R.anim.fade_in, android.R.anim.fade_out)
         }
       }
       else {
         fragmentTransaction?.apply {
           setCustomAnimations(
               R.anim.slide_in_right, android.R.anim.fade_out, android.R.anim.fade_in, R.anim.slide_out_right)
         }
       }
     }


Мне нужно, чтобы для всех переходов "вперёд" (A->B, B->C) старый фрагмент уходил анимацией
android.R.anim.fade_out
а новый появлялся анимацией
R.anim.slide_in_right

А для всех переходов "назад" (B->A, C->A) старый фрагмент уходил анимацией
R.anim.slide_out_right
а новый появлялся анимацией
android.R.anim.fade_in


Сейчас при переходе "назад" B->A, фрагмент B уходит анимацией
android.R.anim.fade_out
вместо
R.anim.slide_out_right

В остальном, всё работает как ожидается.
Можно как-то обработать этот случай?
источник

S

Stanislav in Cicerone Chat (RUS)
Если я правильно понимаю, то проблема в следующем.
Мне нужно, чтобы находясь на экране B при вызове
replaceScreen()
и нажатии кнопки "назад" вызывались разные анимации ухода фрагмента B, а оба эти действия используют ту анимацию, которая была указана 4-м параметром setCustomAnimations() при переходе A->B.
Можно ли как-то это решить?
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
Это вопрос к анимациями фрагментов в целом на Андроиде. Не все так просто)
источник
2019 October 26

AP

Anton Pankratov in Cicerone Chat (RUS)
Привет. Как можно передавать данные между фрагментами?
источник

PA

Pavel Antoshkin in Cicerone Chat (RUS)
Anton Pankratov
Привет. Как можно передавать данные между фрагментами?
Создаёшь newInstance метод и передаешь внутрь него нужные данные. Там в аргументы.
источник

PA

Pavel Antoshkin in Cicerone Chat (RUS)
Связь между фрагментами - через скрины ScreenSupport или как-то так
источник

AP

Anton Pankratov in Cicerone Chat (RUS)
👍
источник
2019 November 06

YS

Yuri Shmakov in Cicerone Chat (RUS)
Подскажите, я правильно понимаю, что FlowFragment в gitfox - это просто штука, которая появилась в процессе эволюции к сингл активити?
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
да, про него я рассказывал на аппсконфе)
источник

KT

Konstantin Tskhovrebov in Cicerone Chat (RUS)
это не часть Чичероне, так как не только про навигацию
источник

YS

Yuri Shmakov in Cicerone Chat (RUS)
ага, я просто сейчас не могу все видосы пересмотреть =) почитать код быстрее )
источник

YS

Yuri Shmakov in Cicerone Chat (RUS)
спасибо, Костя )
источник

YS

Yuri Shmakov in Cicerone Chat (RUS)
Как сильно изменилась библиотека с тех пор, как я её последний раз видел 😍👍 Очень нравится, спасибо )
источник

AO

Artem Osipov in Cicerone Chat (RUS)
Так, а кросс-промоушен в Moxy будет?)
источник

YS

Yuri Shmakov in Cicerone Chat (RUS)
Есть идейка с мокси, тогда и кросс-промоушен можно будет затащить
источник