169 похожих чатов

Как сделать что бы в bottomNavigation фрагменты сохраняли стейт? сохранять

руками?

38 ответов

43 просмотра

а бэкстек тоже нужен? Я для этого готовой библиотекой пользовался

Anatoliy-Kernokus Автор вопроса

как я понимаю нет, три кнопки внизу для переключения фрагментов, но на одном будут графики и не хотелось бы что бы они пропадали когда уходит пользователь на соседний фрагмент

тогда должно быть несложно самому сохранить стейт (или даже экземпляр отцепленного фрагмента)

В общем эдиттекст пустой вернул com.google.android.material.textfield.TextInputEditText и кучу прочей статы. По идее если я просто буду проверять есть ли конкретно эта строчка(com.google.android.material.textfield.TextInputEditText) в строке, то все будет ок?

Да, руками Допустим у тебя есть BottomTabsFragment (там bottomnavigationview). Делаешь на каждый таб отдельный фрашмент TabFragment. Там будет хранится стейт

ты вызвал toString вместо getText

Используй show/hide

Anatoliy-Kernokus Автор вопроса

я в фрагменте хосте создал массив из 3 используемых фрагментов и только их дергаю

у меня просто в глазах плывет так как весь день работал по дому и ебался с okhttp

Anatoliy-Kernokus Автор вопроса

поясните насчёт фрашмента,я не знаком с таким

а, вот отличный вариант, пусть менеджер фрагментов этим занимается

Anatoliy-Kernokus Автор вопроса

тогда можно вообще при старте хоста положить три фрагмента в бэкстэк и уже в bottomNavigation.setOnNavigationItemSelectedListener делать hide/show.я правильно понял?

Да, но я бы так не делал, чтобы не загружать процессор и не дергать лишние методы. Я бы добавлял фрагменты по мере необходимости.

Anatoliy-Kernokus Автор вопроса

В таком случае при нажатии на каждый тап придется проверять есть ли фрагмент в стеке.это не загружает процессор аналогичное?

Не, ты всего лишь получишь из fragment manager объект по tag'у. В случае если ты будешь сразу создавать все фрагменты ты будешь создавать сразу много объектов, выделяя под них память (fragment + presenter + interactor + repository для каждого экрана), а потом для заполнения контентом будешь дергать методы с сети или из БД

Anatoliy-Kernokus Автор вопроса

Спасибо за объяснения

в бэкстек не надо

Можно сделать через первый/второй viewpager (Я бы выбрал первый). Он сам позаботится о сохранении состояния фрагментов. Можно подтянуть либу, например Cicerony

Работал я как-то с этим, такой ад. Никому не советую

блин у меня был метод changeFragmentWithoutRecreation, помню гуглил просто ради интереса if bottomnavigationview loads fragments lazily and recreates them when switching

При пересоздании активити будет утечка. (как минимум раньше была бы). Сделай поиск старых фрагментов в менеджере по тегу и после этого создание

Anatoliy-Kernokus Автор вопроса

пока что думаю через hide/show попробовать сделать

+

Anatoliy-Kernokus Автор вопроса

а в чём ад заключался?я вот пока думаю о том,что надо ведь hide-ть остальные фрагменты, которые не show

Баги. Если решишь делать через это то дам пару советов: Сохраняй нажатую позицию нижней навигации чтобы не было что после пересоздания нажат первый фрагмент а отображается например третий Если столкнешься с прозрачным фоном последнего видимого фрагмента после пересоздании активити, ставь всем фрагментам заданный цвет фона

Anatoliy-Kernokus Автор вопроса

понял,спасибо

Я бы сделал через viewpager и не заморачивался

Anatoliy-Kernokus Автор вопроса

в навигации иконки красивее выглядят.но я подумаю об этом

Через Cicerone будут костыли. Там нет поддержки табов

Ничего не мешает совместить нижнюю навигацию с вьюпейджером. Просто блокнуть ему ручной свайп фрагментов и свайпать по кнопкам

Я всю навигацию построил на этом В чем были сложности?

/

Понял Это скорее особенности android, чем баги Но к сожалению альтернатив add, show, hide нету

Anatoliy-Kernokus Автор вопроса

я правильно понимаю,что когда делаю show одного,то надо делать hide остальных фрагментов?

Да

Зависит от кейса. Может у тебя надо сразу два одновременно отображать в одном окне. В кейсе нижней навигации, да

Норм, даже в последних версиях навигации от гугла где они наконец-то начали пытаться в сохранение фрагментов был этот баг с прозрачностью фона

Anatoliy-Kernokus Автор вопроса

Попробовал вью пейджер.удобнее в плане сохранения стейта и вообще легко всё.но тут надо будет намудрить я так понимаю если хочется в табы всякие svg запихать и ТД.посидеть над стилями?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта