Anonymous
d
Корбен
Типы программистов по профилю на GitHub
binary.
Как вложить стиль в стиль?
binary.
А то я чет забыл
Yap
binary.
Напомните пожалуйста
binary.
Как это делается
binary.
Вы наверное не поняли
binary.
Или поняли
binary.
Неужели никто не знает?
Pavel
Ты про то, как писать всю фразу в одном сообщении?
Nick
Неужели никто не знает?
Вот пример
<style name="activated_dark_item" parent="android:Theme.Holo"> <item name="android:background">@drawable/mDrawable</item> </style>
Dmitry
Ребят, подскажите, плз, каким инструментом сделать for loop такой, чтобы следующая итерация начиналась только после команды из нынешней итерации (допустим ждем ответа от сервера, если ответ 'success', то начинается следующая итерация и т.д). На iOS делал через DispatchGroup и DispatchSemaphore, а здесь не знаю пока куда копать.
Ivansuper
Сделай через синхронные вызовы в ретрофите и иди по циклу в рамках одного фонового потока
Ivansuper
Возможно другие люди подскажут какой нибудь способ через RX
Ivansuper
Но в целом тебе ничего не мешает делать синхронные хттп вызовы в плане сервера или чего то иного
Maxim
Ребят, кто нибудь работал с MotionLayout?
Maxim
Почему анимация сама заканчивается, хотя скролла нет?
Maxim
Anonymous
Anonymous
как вернуть панель
Anonymous
"что-то нажал и оно исчезло"
Kozimjon
Anonymous
правую
Anonymous
там где device explorer
Kozimjon
Посмотри на вкладке view сверху
Dmitry
D1D2C0D1
Здесь есть те кто по политике Play.Market хорошо разбирается?
Сергей
D1D2C0D1
Если в приложении будет форма ввода банковской карты для получения на неё денег, то за это будет блокировать гугл?
Alexey
Я не читал политики, но наверняка
Dug
Alexey
Вопрос по рекламе, если кто имел опыт. Сильно по доходности отличается полноэкранная реклама и реклама в виде элемента ресайклера?
Ivan
Ребят, мой ViewModel является recycler observer моиз вью(активити/фрагмент). Если с активити все нормально, то с фрагментами не совсем, потмоу как у lifecycle есть методы только активити. Как правильно сделать, чтобы viewModel наблюдал так же за методами фрагмента(onViewCreated()) например?
Мумитроль
Ivan
у разных вью свой viewModel
Ivan
пока что я додумался сделать так, когда вызывается во фрагменте методы ЖЦ пишу viewModel.onActivityCreated()
Мумитроль
Ivan
Ну смотри, в случае с фрагментом не хватает методв ЖЦ активити
Ivan
потому как если я в контейнере например меняю один фрагмент другим, то срабатывает onViewDestroyed, но при этом сам фрагмент полностью не уничтожается
Мумитроль
Начните с корня проблемы. Какую задачу вы решаете? Потому что сейчас ощущение, что вы пытаетесь делать то, чего точно не нужно₽
Мумитроль
Задайтесь вопросом: «нужно ли вилкой есть суп?», вместо вопроса «как?»
Nikita
Ivan
хех, ну если можно абстрагироваться, то вот есть пример конкретный, когда допустим каждый раз когда вызывается onStart нужно грузить из базы
Ivan
все это же должно быть во viewModel?
Мумитроль
Ivan
а как быть тогда?
Мумитроль
Вы не правильно ваш onStart понимаете, он не для того чтобы грузить из базы, он точка «когда можно начинать грузить»
Мумитроль
Вы у себя используете LiveData или Rx?
Nikita
Ivan
LiveData для того чтобы из вьюмодел передать в View, а rx в domain и data слояз
Nikita
Ivan
Я понимаю onStart как метод который вызывается при определенных условиях и не более)
Мумитроль
Ivan
сразу во вью?
Мумитроль
Ну зачем вам LiveData тогда, если у вас есть RX?
Мумитроль
Вы можете тоже самое сделать на RX
Ivan
да просто когда разбирался с архитектурными компонентами, там lIveData была ка краз для связи viewModel и view)
Мумитроль
И второе, вам не нужно оповещать вашу ViewModel об onStart, она вообще о вашем жц знать ничего не должна. Вы в onStart можете спокойно подвязываться на холодные обсерверы Rx, а в onStop отвязываться. Для старта каких то других загрузок можно прям конструктор ViewModel использовать и как Симе рыбный метод onCleared
Мумитроль
Ivan
иожно какой то пример написанного?
Nikita
Nikita
?
Theara
Hello guy! Anyone have any idea to embed Telegram chat into android app?
Nikita
LiveData Нужен потому что он знает о жизненном цикле и отдаст данные мертвой View
Ivan
кстати, со viewModel трабла была, потому как она пересоздавалась постоянно. Например при смене ориентации
Мумитроль
Поймите, ViewModel как раз и создан чтобы помочь вам забыть что и когда, чтобы операции работы с базой, сетью и тд были абстрагированы от каких-то жизненных циклов, чтобы можно было хранить состояние экрана переживающее view, а вы тяните туда это все. Для примеров сразу не подскажу, вам стоит поискать самостоятельно какие-нибудь best practice)
Мумитроль
Ivan
override fun onCreateViewModel(viewModelFactory: ViewModelProvider.Factory): MainFragmentViewModel {
return ViewModelProviders.of(this, viewModelFactory).get(MainFragmentViewModel::class.java)
}
Ivan
вот пример как делаю
Мумитроль
Nikita
да просто когда разбирался с архитектурными компонентами, там lIveData была ка краз для связи viewModel и view)
Я бы вам посоветовал сделать так: сделать метод во ViewModel : getData(). Который проверит есть ли у вас LiveData, если есть то просто отдаст его. Если нет то 1)создать LiveData и отдать его,2) Начать загрузку, когда она закончится данные засунуть во LiveData(MutableLiveData). В таком случае загрузка у вас начнется только во время первого запроса и при пересоздании вашего Фрагмента-Активити не будет заново грузится. Если у вас данные приходят по Rx вызывайте dispose в методе onDestrory() во VM.
Nikita
Ivan
Навигация завязана на cicerone, насколько знаю он один раз создвет фрагмент