Anonymous
помогло🙈
Anonymous
спасибо
Евгений
Такая же задача есть как раз, напал на эту статью: https://proandroiddev.com/viewpager2-and-diffutil-d853cdab5f4a На сколько я понял из статьи, без правильных нежных пинков, обновлять не выйдет так просто
в итоге проще оказалось все фрагменты по мере создания складывать в hashmap по позиции, и в нужный момент обновлять фрагмент, если он уже создан, чем какие то непонятные решения не из коробки использовать на свой страх
Евгений
он то да, но искать фрагмент в мэнеджере для обновления с помощью tag это такой себе вариант. Поменяют что-нибудь в реализации и накроется решение
Minmaxminor
Как запарсить значанеие id = "t" в коде? Нужно заполучить Jimmy Stewart & The Night Hawks - Nuthin (для примера). https://pastebin.com/pS2RMm2r
Minmaxminor
jsoup
https://pastebin.com/kvk93UQY Пытаюсь так. Что не так здесь?
Shah
https://pastebin.com/kvk93UQY Пытаюсь так. Что не так здесь?
http://developer.alexanderklimov.ru/android/library/jsoup.php
Евгений
Решения как раз таки из коробки, но да, проще на скорую руку тут
даже в конце статьи пишет чел, что это используешь на страх и риск
Roman
даже в конце статьи пишет чел, что это используешь на страх и риск
Так это не значит, что решение не из коробки - ты же сторонние либы не приносишь)
Назарий
всем привет. можно ли объявлять во фрагментах абстракные переменные? не будет ли проблем с пересозданием фрагмента?
Mike
всем привет. можно ли объявлять во фрагментах абстракные переменные? не будет ли проблем с пересозданием фрагмента?
Все проблемы с пересозданием зависят от конкретных реализаций, а не абстракций.
Flogiston
есть in-memory база данных, как посмотреть, что в ней лежит?
Flogiston
обратиться как к обычной
типа query написать? (просто в обычной, можно было посмотреть файлы базы в андроид студии)
Назарий
Все проблемы с пересозданием зависят от конкретных реализаций, а не абстракций.
All subclasses of Fragment must include a public no-argument constructor. The framework will often re-instantiate a fragment class when needed, in particular during state restore, and needs to be able to find this constructor to instantiate it. If the no-argument constructor is not available, a runtime exception will occur in some cases during state restore. что означает это "in some cases"?
Назарий
При каждом пересоздании.)
почему у меня фрагмент с ненулевым конструктором переживает переворот?
Mike
почему у меня фрагмент с ненулевым конструктором переживает переворот?
Что значит «ненулевым»? configChanges="orientation|…" есть? А setRetainInstance?
Назарий
Что значит «ненулевым»? configChanges="orientation|…" есть? А setRetainInstance?
class OfflineModeFragment(private val default: KClass<out Fragment>) : BaseFragment(R.layout.offline_mode_layout) open class BaseFragment(@LayoutRes private val layoutResId: Int) : Fragment() configChanges стоит так, что фрагменты пересоздаются (каждый раз при перевороте вызывается onCreate), isRetainInstance false в onCreate OfflineModeFragment вывожу в логи значение default, после переворота оно без проблем принтится в логах заново
Назарий
в том то и дело, что нет)
Назарий
сейчас проверю конструкторы в других кейсах, мб что-то обнаружу
Кирилл
в том то и дело, что нет)
Тебе везет, не надейся что твоим юзерам будет везти так же
Mike
Тебе везет, не надейся что твоим юзерам будет везти так же
вот не надо этого, давай всё же до технических причин докопаемся
Назарий
Тебе везет, не надейся что твоим юзерам будет везти так же
я и не собираюсь в продакшн такое выкладывать) просто интересно, как восстанавливаются параметры
Віталій
Чё вы с теми фрагментами паритесь?
Mike
Чё вы с теми фрагментами паритесь?
Внатуре. Нахуй разработку.))0))))0))))
Віталій
Внатуре. Нахуй разработку.))0))))0))))
Не в том смысле. Так можно же View сохранять.
Віталій
чеееего?
Ну когда первый раз инфлейтишь View v
Лиза
Ребята, а скажите, пожалуйста, как поступить. Мне нужно при первом запуске получать от пользователя имя и дату рождения. Для этого я заюзала алертдиалоги, алертбилдеры и датапикеры Если я пытаюсь сделать тупо последовательно, то два окна вылетают вместе, если ставлю условие мол while(name==null){}, то до построения не дохожу(как и до запуска приложения), а если вызываю метод с датой рождения внутри листенеров первого алерта, то датапикер не выходит, ставит дату равной и идёт дальше "" Как быть?
Назарий
ещё одно замечание. у меня OfflineModeFragment - абстракция. все фрагменты, наследующиеся от него, передают этот самый параметр таким образом. class UserStatOfflineModeFragment : OfflineModeFragment(UserStatFragment::class) т.е. он всегда статический в детских фрагментах.
Назарий
можешь объяснить? на сайте Android Developers мало информации по восстановлению фрагментов
Віталій
и что тогда?
Ну так , мы сделали просто булевую переменную false/true. И теперь когда заходишь в фрагмент первый раз - инфлейтится View. При возврате на этот фрагмент по факту уже есть View и просто возвращаем его
Mike
можешь объяснить? на сайте Android Developers мало информации по восстановлению фрагментов
ну у класса UserStatOfflineModeFragment же конструктор без параметров
Назарий
а, понятно. туплю сильно перед сном, соре)
Віталій
Назарий
теперь не понимаю, почему я вообще об этом решил спросить, если и так понятно)
Mike
Ну так , мы сделали просто булевую переменную false/true. И теперь когда заходишь в фрагмент первый раз - инфлейтится View. При возврате на этот фрагмент по факту уже есть View и просто возвращаем его
Во-первых, поздравляю с утёкшей иерархией вьюх, у тебя получился поразительно дорогой бэкстек. Во-вторых, твоя булева переменная не переживёт пересоздания. В-третьих, вообще непонятно, какую проблему ты сейчас решил.
Mike
А вот и нет. Профайлер показывает нормальную работу.
Что такое «нормальная работа»?
Віталій
Ivansuper
Ребят, прекращайте заниматься псевдооптимизациями
Mike
Без лагов и зависаний.
Я тебе про тёплое — ты мне про мягкое.
Віталій
Без повышенного потребления энергии и оперативной памяти
Mike
Без лагов и зависаний.
И с подменой исходного тезиса.
Віталій
Кирилл
Без лагов и зависаний.
inflating может вызвать лаги только при создании, он не вызывает перманентные лаги. Да и если он вызывает эти лаги это явный знак что с layout что-то не так
Mike
Профайлер.
Что «профайлер»? Как ты видишь, «нормально» ли потребляется памяти?
Ivansuper
До и после сравнивал.
Чтобы сравнение было весомым, тебе надо сделать порядка сотни до, и порядка сотни после
Mike
До и после сравнивал.
Ладно, не буду тебя больше тревожить. Не хочу слышать эти обрывки сознания.
Віталій
Ладно, не буду тебя больше тревожить. Не хочу слышать эти обрывки сознания.
Даже если и есть ошибка, проще на нее указать нормально а не указывать какой ты Крутой
Oleg
До и после сравнивал.
Включи в настройках разраба dontKeepActivities и проверь свою реализацию после возврата в приложение из списка недавних
Mike
Даже если и есть ошибка, проще на нее указать нормально а не указывать какой ты Крутой
сложи 10-15 таких фрагментов в бэкстек и посмотри, насколько дороже держать лишнию иерархию вьюх
Mike
Ожидаю NPE
Почему? Там и флаг будет false, и вьюхи не будет, а-ля первый старт.
Віталій
Ожидаю NPE
С какого перепуга там должен быть NPE?
Oleg
Сорри, видимо не на последние комменты глядел, телега глючит
Minmaxminor
как этой хней пользоваться?
Mike
как этой хней пользоваться?
с этим, пожалуйста, в @javastart
Minmaxminor
с этим, пожалуйста, в @javastart
Спасибо, давно искал.
Shah
как этой хней пользоваться?
JSOUP http://developer.alexanderklimov.ru/android/library/jsoup.php