Size: a a a

Android Developers

2020 March 26

L

Line'R in Android Developers
Quantum Harmonizer
Скопировать координатор и переименовать его.
Сделать аля свой координатор?
источник

QH

Quantum Harmonizer in Android Developers
Line'R
Сделать аля свой координатор?
Зачем делать свой? Бери готовый, он уже сделан.
источник

QH

Quantum Harmonizer in Android Developers
@morozovvadim91, хочешь спросить — спрашивай
источник

VM

Vadim Morozov in Android Developers
и конкретный вопрос я тоже задавал) думал может кто появился новый в чате)
делаю MVVM и у меня сейчас получается что 2 ViewModel
Один я связываю с data binding и использую поля в xml
а второй использую для отображения всего списка
и по идее, у меня должен быть 1 ViewModel
но не уверен что их надо объединять.
щас код закину в гист, может будет наглядней
источник

VM

Vadim Morozov in Android Developers
источник

VM

Vadim Morozov in Android Developers
там кода не особо много
речь идёт именно о AboutListItemViewModel и AboutViewModel
стоит ли их объединять
источник

К

Кирилл in Android Developers
У меня есть апи для приложения но на него можно стучаться с браузера. Как его можно закрыть только для телефонов?
источник

ЛЛ

Лёша Лазарев... in Android Developers
Кирилл
У меня есть апи для приложения но на него можно стучаться с браузера. Как его можно закрыть только для телефонов?
Проверять user-agent? не знаю на сколько рабочий вариант
источник

VM

Vadim Morozov in Android Developers
Vadim Morozov
там кода не особо много
речь идёт именно о AboutListItemViewModel и AboutViewModel
стоит ли их объединять
и тишина...) эх ..)
источник

П

Пепег in Android Developers
есть такая вот розметка, сейчас размер картинок задан 70дп-70дп, как сделать их размер адаптивным? может есть какой то параметр для колонок типа weight или что бы контент не выходил за размеры гридЛейаута
источник

П

Пепег in Android Developers
источник

AK

Alexey Kotlin in Android Developers
Всем привет. Извиняюсь что фоткой, просто по другому никак. Почему папки перестали группироваться?
источник

VD

Victor Dorofeev in Android Developers
Alexey Kotlin
Всем привет. Извиняюсь что фоткой, просто по другому никак. Почему папки перестали группироваться?
в настройке вьюшки поставь галочку compact middle packages
источник

AK

Alexey Kotlin in Android Developers
Спасибо)
источник

VD

Victor Dorofeev in Android Developers
ой, не, пардон, flatten packages
источник

AK

Alexey Kotlin in Android Developers
Да, уже нашёл)
источник

RS

Ruslan Sharipov in Android Developers
Vadim Morozov
и тишина...) эх ..)
я когда увидел сообщения про то, где должен быть клик лиснер видимо не понял суть вопроса.
1. зачем передавать clickListener во вьюмодель через фабрику и конструктор, если он потом сетится в адаптер того же фрагмента и никак не используется во вьюмодели? и вообще так делать - не тру джедайский путь. ничего не поменялось, создавать у вьюмодели метод fun onListItemClick(clickedItem: SomeItem) и лиснер во фрагменте будет примерно такой
val listener: (SomeItem) -> Unit = { viewModel.onListItemClick(it) }
его уже передавать в адаптер, а в адаптере уже при байндинге холдера сетить ему View.OnClickListener { listener(someItem) }. а чтобы не создавать экземпляр этого лиснера при каждом байнде можно этот лиснер передавать в конструктор холдера и сетить его на нужную вьюху в блоке init.         Но при этом придется завести переменную, в которой будет храниться элемент списка и сетить его при байндинге.
2) геттеров у вьюмодели не должно быть, как и у вьюхи. гуглить по запросу unidirectional data flow android
источник

VM

Vadim Morozov in Android Developers
Ruslan Sharipov
я когда увидел сообщения про то, где должен быть клик лиснер видимо не понял суть вопроса.
1. зачем передавать clickListener во вьюмодель через фабрику и конструктор, если он потом сетится в адаптер того же фрагмента и никак не используется во вьюмодели? и вообще так делать - не тру джедайский путь. ничего не поменялось, создавать у вьюмодели метод fun onListItemClick(clickedItem: SomeItem) и лиснер во фрагменте будет примерно такой
val listener: (SomeItem) -> Unit = { viewModel.onListItemClick(it) }
его уже передавать в адаптер, а в адаптере уже при байндинге холдера сетить ему View.OnClickListener { listener(someItem) }. а чтобы не создавать экземпляр этого лиснера при каждом байнде можно этот лиснер передавать в конструктор холдера и сетить его на нужную вьюху в блоке init.         Но при этом придется завести переменную, в которой будет храниться элемент списка и сетить его при байндинге.
2) геттеров у вьюмодели не должно быть, как и у вьюхи. гуглить по запросу unidirectional data flow android
Насчёт первого пункта я пересмотрю, но насчёт второго если честно не понял замечания то есть как я понял AboutListItemViewModel быть вообще не должно?
я же получаются из  xml ссылаюсь так раз таки на эти значения.
источник

RS

Ruslan Sharipov in Android Developers
Vadim Morozov
Насчёт первого пункта я пересмотрю, но насчёт второго если честно не понял замечания то есть как я понял AboutListItemViewModel быть вообще не должно?
я же получаются из  xml ссылаюсь так раз таки на эти значения.
согласен, геттеры должны быть. но они должны возвращать не значения, а какой-то обзервабл. LiveData или из рх.
суть в том, что вью модель хранит стейт и вьюмодель изменяет его. в вью на эти изменения подписывается.
а если вью просто надо прочитать значения один раз это ок, но в более сложных случаях начнется хаос и боль.
источник

RS

Ruslan Sharipov in Android Developers
так, стоп.
какая-то лажа с неймингом.
я думал мы про ViewModel'и говорим)
а тут простые модельки названы с суффиксом ViewModel)
источник