Vadim
@Harmonizr вот даже видосик скинул не обновляется текст после обновления
Vadim
а почему должен?
я ожидал что в методе setupViews когда я беру значенике с editText viewModel.quoteAuthor.value = etAuthorName.text.toString() и кидаю его в поле quoteAuthor которое у меня меняется во viewModel то тогда в методе quoteData?.let { update(it) } модель будет обновлятся уже с новым полем quoteAuthor
Vadim
у тебя одна вьюмодель на оба экрана? Кстати, не увидел адаптера — это ведь в ресайклере карточки?
нет 2 карточки да ресайклер тут проблема как из editText передать корректно данные во viewModel
Vadim
ну я так вижу по крайней мере проблему
Mike
нет 2 карточки да ресайклер тут проблема как из editText передать корректно данные во viewModel
ну передал фрагмент текст в свою вьюмодель — а соседняя вьюмодель откуда об этом узнает? И кто обновит ресайклер?
Vadim
ну передал фрагмент текст в свою вьюмодель — а соседняя вьюмодель откуда об этом узнает? И кто обновит ресайклер?
ресайклер у меня обновляется но я то меняю сейчас текст во onViewCreated и у меня всегда одни и те же данные а мне надо чтобы при изменении этих editText улетали актуальные данные вот думал в сторону textWatcher но мне они не оч нравятся и хотел как то по другому брать
Damir
Почему текстватчер не нравится?
Vadim
Почему текстватчер не нравится?
потому как к примеру если у меня 3 editText то на каждый надо будет вешать по 3 метода
Damir
Насколько я помню, можно уже не вешать все три метода
Vadim
etAuthorName.addTextChangedListener { afterTextChanged { } } и как отсюда взять строку...
Yenoq
Ребят кто знает как можно исправить ошибку "No adapter attached, skipping layout"?
Muhammad
Добрый день
Muhammad
можно ли открыт созданное БД с СУБД DB Browser for SQLite в проекте ?
Muhammad
еслы да то как ?
Yuri
etAuthorName.addTextChangedListener { afterTextChanged { } } и как отсюда взять строку...
Нужно правильно написать сигнатуру замыкания. Посмотри документацию
Rustam
Похоже на ресайклер с разными типами вьюхолдеров
Не знаю для такого это просто зашквар
HIKMATULLO
Как это создать
Axrorxo'ja
Good afternoon everyone have a question in the recyclerview viewholder is created very often model as date class created I did manual merge, used diffUtil, use listAdapter but the same result again again again someone had such a moment ?
Axrorxo'ja
1. please explain the problem. 2. Which results you have?
When I update adapter list and call notifyItemChanged or notifyItemRangeChanged ViewHolder is being recreated like when I update 2 items 2 viewholder recreated again is it clear ? or you mean code snippet ?
Dmytro
When I update adapter list and call notifyItemChanged or notifyItemRangeChanged ViewHolder is being recreated like when I update 2 items 2 viewholder recreated again is it clear ? or you mean code snippet ?
As I understand it is expected behaviour. If you dont want to update whole item, look at notifying with Payload. And implement method onBindViewHolder with payload parameter
Axrorxo'ja
As I understand it is expected behaviour. If you dont want to update whole item, look at notifying with Payload. And implement method onBindViewHolder with payload parameter
I tried with payload too but the result is the same As I know viewholder must be created as many fit on the screen like 5-10 then they should be reused Am I right ?
Egor
Похоже на ресайклер с разными типами вьюхолдеров
Лол, что? 15 кастомных ячеек? Я бы просто закинул бы всю верстку в скрол вью. Она не такая тяжелая.
Axrorxo'ja
Умид
день добрый! ест ли кто знает помогите, как сделать ран?
Eugene
Всем привет, Я только недавно начал изучать андройд, раньше я писал на иос., хотел спросить... эти элементы на фото это элементы ЛИСТВЬЮ?
Не обязательно ListView или RecyclerView Может это и обычная разметка Если нужно масштабировать подобные экраны то для удобства лучше всего подойдёт RecyclerView. Заполнил модели нужной датой и подкидываешь иконки, настроил слушатель на клики и готово
ABI
день добрый! ест ли кто знает помогите, как сделать ран?
В манифесте у твоей maiactivity выставь свойство DEFAULT. Гугл в помощь
Умид
@zimjonSalimov @abivan спасибо
Сергей
#noob #dagger вопрос про даггер. 4-й день смотрю видосы всё равно не могу въехать. Например зачем в компоненте делать геттеры , если уже есть теже самые провайдеры в модуле, которые можно простои инжектить @inject ? )
#noob Вот я открыл три разных проекта c dagger у всех AppComponent написан по разному. В одном куча геттеров (непонятно зачем), в другом нет ни геттеров, ни инжекта, в третьем одни инжекты в активити. ХЗ как делать надо ? и почему нельзя делать только одни инжекты ?
Никита 🙃
1. Через геттеры сделали 2. Через много сабмодулей с фактори 3. Через инжект. У каждого способа есть свои плюсы и минусы, но в 95% случаях Даггер не нужен
Никита 🙃
#noob Вот я открыл три разных проекта c dagger у всех AppComponent написан по разному. В одном куча геттеров (непонятно зачем), в другом нет ни геттеров, ни инжекта, в третьем одни инжекты в активити. ХЗ как делать надо ? и почему нельзя делать только одни инжекты ?
Если по простому. В первом случае геттеры нужны, что бы провайдить эти элементы в конструкторы других. Сабмодули - это всё всё вынесено в них Инжекты для активити, потому что у них нет конструкторов
Никита 🙃
В сабмодули выкидывают при разбивании по фичам, по SRP
Никита 🙃
Чисто технически, все три способа обычно встречается в одном проекте сразу 🙃
Сергей
1. Через геттеры сделали 2. Через много сабмодулей с фактори 3. Через инжект. У каждого способа есть свои плюсы и минусы, но в 95% случаях Даггер не нужен
Ок. а какой смысл делать инжект в app, а всё остальное вызывать геттерами ? Если можно делать инжекты сразу куда надо. Тупой вопрос, но я не знаю как это спрашивать еще )
Никита 🙃
А если noob не только по даггеру, а вообще с DI, попробуй организовать без либ
Никита 🙃
Когда у тебя есть класс SomeFeatureRepository(someDataSource: DS, someClass: MoreThing) То ему надо запровайдить эти 2 класса, для этого их прописывают как в первом варианте
Никита 🙃
Вообще даггер херня ебаная. Чтоб правильно его готовить надо прям его залрачивать, иначе всеравно будет "не правильно" и непонятно. 😊 Уже 1.5 года к нему не прикасаюсь и счастлив
Sergey
берешь хилт и разруливаешь все аннотациями как ниндзя 😁 правда он еще не продакшн реди, наверн
Никита 🙃
Берешь коин и пишешь get(), get(), get() :)
Egor
Вообще даггер херня ебаная. Чтоб правильно его готовить надо прям его залрачивать, иначе всеравно будет "не правильно" и непонятно. 😊 Уже 1.5 года к нему не прикасаюсь и счастлив
Ну так для провайда одного класса он нафиг не нужен, а если для репозитория нужно дохера маперов, конвертеров и прочей херни, то устанешь создавать их.
Сергей
всё равно не пойму почему нельзя все делать аннотациями @inject Class SomeFeatureRepository (someDataSource: DS, someClass: MoreThing){} @inject repository: SomeFeatureRepository; В чем прикол DI с ручными вызывами геттера ? appComponent.getSomeFeatureRepository()
Никита 🙃
Ну точнее для контроля
Egor
А если вопрос зашел по даггеру, то нужно ли в проектах создавать еще один компонент, если можно просто модулей подобавлять? И когда это нужно?
Sersh
Добрый день дамы и господа. Подскажите по почему в bottom navigation оди едемент увеличивает
Sersh
Egor
Чего?
Никита 🙃
На предыдущей работе был даггер. Каждый новый кто приходил говорил на решение предыдущего "но это же не правильно"
Никита 🙃
?
Ну, первый айтем выбран
Sersh
нет, ничего не вибрано. просто три одинакових item.
Sersh
или я чего-то не понимаю
Victoria
Всем привет) Может у кого-нибудь есть знакомые, которые разбираются в реверс инжиниринге Android приложений? Или какие-нибудь чаты на подобную тематику есть?
Victoria
Vadim
Нужно правильно написать сигнатуру замыкания. Посмотри документацию
В документации акцент на вызов функции А не на на то как можно после преобразовать editable в string
Михаил
Что думаете о том, чтобы использовать Яндекс.Диск как онлайн хранилище? Или есть варианты получше? Задача: хранить 250 MB файлов и скачивать их по требованию пользователя. Firebase мне не подходит, т.к. там уже кол-во скачиваний близко к максимальному бесплатному в день. А платить пока не могу себе позволить.
Михаил
Имхо, если это будет работать, то почему бы и нет. Ну при заданных условиях, конечно.
Я вот сейчас просто выбираю. Пока нашёл информацию только про Яндекс.Диск, Google Drive и DropBox. И вот думаю какой выбрать лучше. У Dropbox'a нужно подавать заявку на статус Production. У гугла, на первый взгляд, тоже какая-то запара там. Яндекс - пока не понятно. Поэтому хочу узнать у опытных, что лучше, не считая Firebase
CatOnPad
Привет! Небольшой вопросик. Есть объект и на него наплывает другой объект. Как контролировать, кто на кого наплывает (В LinearLayout)? В вебе это вроде называется z-index, а что-то такое есть в свойстах объектов?
Lomaga Konstantin
CatOnPad
Да, спасибо
CatOnPad
Я понял, что надо перекатывать бочку в FrameLayout