Ivan
поменял на обычный - еще хуже
Ivan
ну я сделал, что при сворачивании, у меня дестроятся все активити
Ivan
выходит фрагменты в них тоже
Kanstantsin
ну вроде пока логично
Kanstantsin
точнее неочень, но я тебя понял )
Kanstantsin
потом ты разворачиваешь, начинается пересоздание, а в какой момент адаптер вешается на view pager ?
Ivan
во фрагменте обсервер лайв даты, туда приходят данные, эти данные сую в адаптер, потом адаптер в ресайкл
Kanstantsin
и нужно точно юзать child
Ivan
ну да я его заюзал
Kanstantsin
потому что иначе фрагменты пейджера оказываются в общем фрагмент менеджере и тогда они сами начинают пересоздаваться
Kanstantsin
а так они будут привязаны к фрагменту в котором их дергают
Kanstantsin
так, а теперь опиши точно в чем проблема вообще )
Ivan
еще такая зацепка, у меня напрмер 4 порции данных = 4 фрагмента. Когда только их отобразили, создались 1 и 2, когда двигаемся создается следующий
Ivan
и получается что эти два фрагмента вызывают onCreate, пока еще адаптер неприатачился
Kanstantsin
происходит крэш ?
Ivan
из за этого они пустые, почему то данные которые сую в адаптер в них не суются, ну точнее потмоу что они уже созданы, адаптер не считает нужным еще создавать эти же фрагменты
Kanstantsin
я просто под рукой примера не имею, но может это и нормально ? а потом идет аттач и данные видны
Ivan
не происходит, просто потому что такая логика
Ivan
ну вот адаптер не создает их больше, а значит эти фрагменты без данных
Kanstantsin
точнее так
Kanstantsin
там же нет проверки
Ivan
ну он смотрит на этой позиции он уже создан и не создает больше
Kanstantsin
ну тогда надо чтобы фрагмент когда создается смотреть livedata и понимал что есть данные и их надо отобразить
Kanstantsin
если надо переобновить, реализовать логику перезагрузки данных
Kanstantsin
я думаю всё дело в том что фрагменты сами ресторятся, и просто должны сами тянуть данные, а адаптер работает верно
Ivan
ну так они это делают пока я его еще не приатачил
Kanstantsin
я неочень понимаю в чем проблема, то
Kanstantsin
ну и пусть делают, загружают данные или отображают, потом аттач
Kanstantsin
и ты их сразу видишь готовыми
Ivan
Смотри, у меня сначала подгружаются данные. тоесть setData(). Потом я атачу адаптер к ресайклеру, начинают создаваться фрагменты.
Ivan
Когда я разворачиваю приложение, то еще до того как я сделал setData() у меня уже 2 фрагмента создались, н ов них нет данных. Когда я после этого атачу адаптер, в адаптере эти два фрагмента не создаются по новой
Ivan
Так и остаются пустыми
Kanstantsin
вообщем меня смущает state адаптер, его юзают редко и под специфические кейсы, также зачем ты вообще руками хранишь фрагменты ?
Kanstantsin
в списке, вообщем я если честно не понимаю твою реализацию, выглядит весьма странной и перемудреной
Kanstantsin
зачем данные подкидывать отдельным методом, почему не создавать адаптер когда есть данные уже и кидать их в конструктор(гарантия что они всегда будут)
Kanstantsin
вообщем у меня много вопросов, имхо ты что-то перемудрил, и всё обычно там довольно просто и нормально работает, сколько работал с пейджерами, и восстановление стейта, и подгрузка данных и обновление если надо
Ivan
ну хранение делал похоже затем, чтобы доставать нужные фрагменты если нужно
Ivan
разницы нет конструктор или метод
Ivan
я бы сказал это удобнее, чтобы там например в одном месте его определить, а потом в другом добавить данные
Ivan
ну а так чего перемудрять, код ты видишь, его немного
Anonymous
Привет вопрос: cannot parse result path string. так что я могу сделать?
Ivan
скажи хотя бы что именно это тебе кидает
Anonymous
Android studio error
keebrunner
Подскажите эмуль на древнекомп с виндой 3Гб рамы. Пусть бы пыхтел но лиж бы работал.
Vladimir
В Гугл мапс можно как то сделать кастомный маркер, в виде точки с цифрой а потом изменить его цвет? Или только удалить точку и на ее место поставить новую?
Kanstantsin
я бы сказал это удобнее, чтобы там например в одном месте его определить, а потом в другом добавить данные
ну ты видишь теперь что происходит, и сложно понять из-за чего вообще, был бы конструктор, ты бы не мог вообще адаптер создавать без данных, то есть моя логика: получил данные - создал адаптер - приатачил к view pager
Kanstantsin
Кароч ладно, возможно я не могу толком сесть за это, надо дебажить и крутить что нет так, и менять, я надеюсь кто-то подскажет верное решение
Ivan
да оно так и есть, адаптер ничег оне начнет делать, пока он не приатачен
Kanstantsin
ты можешь попробовать сделать какую проверку, если уже фрагменты есть, то обновить их с новыми данными
Kanstantsin
раз они не могут создаться
Vladimir
да оно так и есть, адаптер ничег оне начнет делать, пока он не приатачен
Если в фрагментах данные одинаковые - почему бы не шарить данные через вьюмодель?
Станислав
Подскажите пожалуйста. Низ текствью привязан к верху кнопки (которая расположена под ним). Но во время работы приложения текствью все равно привязывается к низу экрана…
Ivan
как вариант конечно, но зачем, если можно просто передать в фрагмент и все
Ivan
хотя как ты поймешь во фрагменте какие именно данные тебе нужны
Kanstantsin
Если в фрагментах данные одинаковые - почему бы не шарить данные через вьюмодель?
++, юзать одну view model пошаренную, а в ней livedata с данными, и обновляешь на parent данные, а каждый слушает и получает, че-то забыл про это, хорошее решение
Vladimir
хотя как ты поймешь во фрагменте какие именно данные тебе нужны
Всмысле? Ты же data суешь во все и дата одинаковая?
Kanstantsin
ну обучноы если у тебя в одном фрагменте 3 страницы пейджера, лучше все делать через одну модель чтобы и данные шарить(только если каждая страница очень сложная и много своих данных)
Ivan
дата одного типа, но сами по себе данные разные
Kanstantsin
а как каждый фрагмент у тебя понимает что разная ? если объект один и тот же
Kanstantsin
по position как я понимаю
Ivan
setData(List<Data>)
Ivan
сколько в коллекции итемов, столько фрагмнетов
Vladimir
сколько в коллекции итемов, столько фрагмнетов
Тогда ты немного не правильно делаешь )
Станислав
constraintTop_toTopOf parent можно убрать
тогда текст не будет по центру экрана. Мне же нужно текствью привязать к сторонам экрана кроме нижней. Низ к кнопке
Ivan
а как
Ivan
тогда текст не будет по центру экрана. Мне же нужно текствью привязать к сторонам экрана кроме нижней. Низ к кнопке
видимо я не так понял. По верстке вроде все ок, хочешь сказать текст не посередине между верхней кромкой экрана и кнопкой?
Станислав
видимо я не так понял. По верстке вроде все ок, хочешь сказать текст не посередине между верхней кромкой экрана и кнопкой?
Если убрать, как ты сказал constraintTop_toTopOf="parent», то текст тогда привязывается к низу экрана и его размеры изменяются в зависимости от объема символов. В моем изначальном варианте все норм на дизайне, но после запуска прилы текст отвязывается от кнопки и привязывается к низу экрана. Т.е. app:layout_constraintBottom_toTopOf="@id/startButton" работает как app:layout_constraintBottom_toTopOf=«parent»
Станислав
Народ, мб кто знает как на устройствах Xiaomi Redmi 6a (Android 8.1) и Xiaomi Mi 9t (Android 9) отправить отчет об ошибках через меню разработчика? Соответствующий пункт в меню разработчиков на этих устройствах отсутствует.
Vadim
Да нет, просто сложно понять что у тебя там. Котлин славится неявными типизациями, и надо смотреть какие типы где всплывают
проблема в том что .filter() возвращает тип List и получается что слева у меня ожидает ObservableList<> а справа так как filiter то у меня тип List<> и вот тут собственно вопрос можно ли как то фильтровать и ObservableList?
Станислав
такого не должно быть если кнопка VISIBLE
по логике да, а по факту нет (
M
Знаете что может быть причиной постоянного аллоцирования данных объектов?
Vadim
Кто то знает как можно отфильтровать ObservableList?
Станислав
а есть скриншот?)
Заработало в текствью android:layout_height="0dp». Странно...
Станислав
Может кто дать ссылку на годную статью по авто масштабированию текста под размеры текствью?