Dug
V
ну реплейс вызовет не только паузу
V
а add почему-то не добавляет новый наверх
V
есть вариант с hide, но тогда при пересоздании активити видимость слетает
V
или сверху держать новый контейнер
Tishka17
V
у меня там фрагмент из сети качает, график большой рисует, рестарт долго будет делаться
V
а сверху хочу настройки показать
Dug
Мне кажется тебе стоит попытаться разобраться, почему не добавляет. Что-то не так делаешь мб? Не может же оно взять и просто не хотеть добавлятт
Tishka17
Tishka17
По крайней мере качать
V
ну на стеке вроде эта проблема не решена, может я плохо искал, в старом делал через hide, но слишком сложно получилось
V
качает не фрагмент, но как минимум отрисовка
V
он добавляется, но старый фрагмент остается сверху
V
есть еще один неясный для меня вопрос, если я буду хранить ссылки на фрагменты, то после пересоздания активити эти ссылки уже обнулятся? или будут хранить ссылки на старые фрагменты, а во фрагмент менеджере будут созданы новые фрагменты?
Mike
Mike
другое дело, что у фрагментов есть стабильные id
Mike
V
V
ну тогда можно attach/ detach делать каждый раз, чтобы в контейнере отображался только последний фрагмент. Хотя странно конечно, что они не в стеке
Tishka17
Elron
ретаин фрагменты лучше добавлять по тегу, а не по ид
Mike
Tishka17
ретейны не сохранятся
V
но у меня все-таки впечатление, что мой подход не правильный. Видимо фрагменты должы быть легкими, и реплейс не должен быть проблемой. Данные надо хранить в retain. Но что делать если 1) отрисовка сложная или визуальную часть надо сохранить 2) фрагмент чужой, я ему могу сказать только старт и стоп, причем пока приложение открыто, он не должен останавливаться, поэтому для таких случаев replace не подходит
V
сорри за мгоно букв)
Глеб
как в CollapsingToolbarLayout задать разный цвет иконок при сворачивании разворачивании
Tishka17
ИМХО,
1. если фрагмент не видим, он не должен ничего делать
2. Если отрисовка сложная стоит подумать о кэшировании или вынесении рендеринга из фрагмента в специальный сервис
V
а если у меня данные во фрагменте, активити пересоздалось, ссылка у меня на старый фрагмент, а создался новый на замену - как лучше в такой ситуации поступить?
Mike
Artem
используйте архитектурные компоненты и состояния, там все эти проблемы решены
V
ну вот я добавил фрагмент, надо в нем методы вызвать, что-то ему передать, поэтому храню ссылку на него
V
Mike
Mike
Artem
https://developer.android.com/topic/libraries/architecture/
Mike
Valery
Привет всем!
Проблема с deep link на xiomi и nexus
я создал такой intent-filter
https://monosnap.com/file/kbtdEqGTrhYoTXaOnv9cUJbm7qZeYD
при клике на эту ссылку https://allo.ua на one plus и samsung предлагает открыть приложение, а на xiomi и nexus сразу же открывается сайт
на сколько я понмиаю, на одних устройствах этот интент фильтр отрабатывает, а на некоторых нет
кто-нибудь встречался с токой проблемой?
Artem
все что описывает состояние должно жить в вьюмодел
Artem
фрагмент и активити только восстанавливает состояние из данных
Andrey
Всем привет. Подскажите в таком вопросе: я во fragment передаю объект с большим количеством полей. Но для отображения во фрагменте мне нужно всего 3 поля из этого объекта. Где лучше заказать mapper (если я правильно делаю)? использую MVP.
Artem
не совсем
Artem
это ретэйн дата
Artem
а фрагмент лишь представление
V
Спасибо, посмотрю
Artem
и можешь его пересоздать его как угодно
Kanstantsin
всем привет, падает эксепшен при работе с корутинами в android studio, прилага крэшится, но в Logcat я не вижу его, в чем может быть дело..
Еламан
Добрый день. Как получить данные которые приходят пользователю из сервера?
Mike
V
это ретэйн дата
то есть предложение данные хранить в ретейн фрагменте, а фрагменты использовать только для отображения?
Artem
но это не значит что это правильно
Artem
В ViewModel ты можешь держать данные, используя LiveData предоставлять подписчикам данные по последнему состоянию
Artem
и соотв. тебе совершенно не нужно изворачиваться в View (activity или fragment) пытаясь как-то сохранять состояния, переживать множество ситуаций когда что-то пошло не так
Mike
только вот ViewModel не умеет сохранять состояние при пересоздании процесса
Artem
Иш чего захотел) Оно и не должно.
Artem
Те данные, что должны переживать такую ситуацию должны жить в перманентном хранилище
Еламан
Это слишком неконкретно.
Хочу получить для конкретного пользователя данные, которые приходят ему при вызове некого апи. Пользователь заходит под своим аккаунтом. У каждого пользователя свои данные. Теперь хочу когда мне нужный пользователь зайдет в приложение и откроется окно который вызовет некий апи, получить результат этого вызова
Mike
они неплохо себя чувствуют и в savedInstanceState, а вот у вьюмодели такой фичи нет
Mike
Еламан
Mike
Artem
только вот savedInstanceState может держать небольшое количество данных, и ипользовать его нужно только для сторинга данных полей ввода
Mike
Еламан
Не могу зайти под этим юзером
Artem
https://medium.com/google-developers/viewmodels-persistence-onsaveinstancestate-restoring-ui-state-and-loaders-fc7cc4a6c090
Artem
собственно годная статья на тему вопроса
Artem
ViewModel вообще по сути некий объект логики экрана, не зависящий от изменений конфигурации
Artem
его задача например выполнять запрос, менять свое состояние и провайдить его во View
Isomjon
А Откуда узнали что он не закрыт?