Iuriich
getChildCount(), getChildAt()
Я как ни зайду ты постоянно всем здесь помогаешь:)
Iv
Я читал этот официальный бред, да.
ну бред не бред, а позиция гугла, которая будет определяющей
Anton
Почему элемент размером в 100 dp помещается полностью в родительском элементе, а 2 элемента по 50 dp нет? как можно убрать этот отступ?
Mike
ну бред не бред, а позиция гугла, которая будет определяющей
Что значит «будет определяющей»? Говорю же, удалить асинктаск невозможно, его использую и будут использовать тысячи приложений. Ну депрекейтед — и ладно.
Ilya
ну бред не бред, а позиция гугла, которая будет определяющей
Сколько уже было этих определяющих позиций гугла до WorkManager ?
Iv
мужики, спорить с вами не буду - щас закидаете какашками, но это официальная позиция гугла, которую разработчик должен принимать во внимание)
Iuriich
Я от асинктасков сначала отказался в пользу eventbus, потому что мне не нравится он сам по себе, потом уже на rx перепрыгнул, когда разобрался в нем получше и научился более менее пользоваться оказалось весьма удобной штукой
Andrew
Я помню про котлин тоже так говорили по началу - да не, гугл не сделает его предпочтительным языком. Зачем ведь все на джаве пишут миллионы приложений на джаве. И че в итоге. Гуглу пофигу бред или не бред если они так решили они положат известный предмет и на миллиард приложений использующий асинк таск
Anton
padding, margin
padding и margin = 0, но отступ есть. Если делать padding и margin, то как узнать величину, на которую сдвигать?
Iuriich
Вот оно, то самое непонимание, что и для чего создано
Не прямая замена, а сам механизм передачи результата работы. После небольшой доработки он мне заменил асинктаск
Iuriich
Я уже не помню точно что там делал, но работало стабильно и гибко
Andrew
Хахахахахах
Я почему то вспомнил анекдот про жирафа и зайца
Kanstantsin
и вообще я в 2к19 вместо эвент баса использую локальные бродкасты вообще ) и зачем лишняя либа, раньше по незнанке тоже тягал её, сейчас понимаю, что можно сильных делов наворотить, и код не станет лучше )
Andrew
как заяц рассказывал анектод жирафу, а тот смеялся на следующий день
Kanstantsin
+, чучуть использовал локальные броадкасты. Уродство, но работает
ну да, не супер круто, но эвент басом помню ребята упарывались так жестко, что ковырять это вообще было грустно потом, поэтому уж лучше без него
Turalllb
блин, где я туплю подскажите, уже бесит проблема. override fun onBindViewHolder(holder: ViewHolder, position: Int) { val view = holder.itemView holder.dataPosition = position visibleViews[position] = holder val item = itemForPosition(position) ?: return item.attachView(view) Log.wtf(" установил слушатель фокуса ") holder.itemView.setOnFocusChangeListener { _, hasFocus -> wtf(" позиция + ") } }
Turalllb
не вызывается слушатель при переключении фокусов
Anton
Это превью, а что на эмуляторе/девайсе?
вот скрин с эмулятора, справа от белой вьюшки виден отступ
Mike
вот скрин с эмулятора, справа от белой вьюшки виден отступ
я бы посоветовал LinearLayout и weight=1, потому что из дипов не всегда получается целое число пикселей
Iuriich
только на одном типе вьюх вызывается. На всех остальных нет. Focusable везде установлен. реально вьюхи фокус получают, в реализации самих вьюх слушатель отрабатывает.
Одно замечание что листенеры следует устанавливать во viewholder'e, а позицию получать getAdapterPosition и проверять обязательно что она >=0
Iuriich
Подскажите решение задачки: <data> <variable name="method" type=" ????????????????????????????????? " /> </data> <View android:onClick="@{()-> method} /> Так же можно делать?
Iuriich
По идее то нет
Mike
и тогда @{method}
Iuriich
и тогда @{method}
Нет, а если так как я хочу?
Mike
Нет, а если так как я хочу?
любой функциональный интерфейс, подходящий по сигнатуре
Mike
(мм, два виртуальных вызова подряд)
Iuriich
Примерно так можно, почитай в офф доке
Да вот читаю, через method reference не хочу, а как через listener binding пока не вижу ответа:)
Mike
Да вот читаю, через method reference не хочу, а как через listener binding пока не вижу ответа:)
Почему не хочешь-то? Какой смысл отказываться от стандартных языковых конструкций?
Anonymous
Помню так можно
Никита
Всем привет. Кто-нибудь делал шаринг картинки с twitter'om ? Качаю картинку через DownloadManager,получаю ее uri через FileProvider.getUriForFile(...) и передаю через Intent.putExtra(Intent.EXTRA_STREAM, uri). Но twitter ее не видит. Uri валидная т.к. с Инстой все работает. Help
Iuriich
getAdapterPosition что мне вернет? первый или последний видимый ?
вернет позицию текущего элемента. ты почитай как recyclerview работает, элементов может быть тысяча, а вьюхолдеров используется к примеру с десяток. Вместо того чтобы назначать слушатели на каждый появляемый элемент при скроле можно один раз задать его для этих десяти холдеров
Iuriich
<View android:onClick="@{()-> viewmodel.onClick()} />
Можно, но задача и есть в том чтобы "viewmodel.onClick()" передавать в качестве переменной:)
Anonymous
зачем?
Anonymous
Подскажите, а сколько еще голосование будет длится?
Iuriich
зачем?
Да так, ладно забей, буду OnClickListener передавать:)
Turalllb
вернет позицию текущего элемента. ты почитай как recyclerview работает, элементов может быть тысяча, а вьюхолдеров используется к примеру с десяток. Вместо того чтобы назначать слушатели на каждый появляемый элемент при скроле можно один раз задать его для этих десяти холдеров
ок, не ясно конечно что значит текущий элемент ( я на телике пультом управляю фокусом, фокус всегда на середине, а getAdapterPosition это для скролла пальцем, скажет какой там последний элемент который показался. А второе, я не пойму как на холдер повесить слушатель если этот слушатель фокуса можно вешать только на вьюхи, холдер это не вьюха
Turalllb
Во вьюхе в классе ViewHolder я имею в виду, а не при onBind
с этим согласен, холдеры переиспользуются и получается на одну и ту же вьюху по много раз вешаю слушатель, но это единственное место, где я знаю что эта вьюха имеет такую то позицию в списке всех элементов. а getAdapterPosition не совсем то. Я сейчас попробую конечно , но и документация подтверждает
Turalllb
RecyclerView не обрабатывает обновления адаптера до следующего обхода макета. Это может создать временные несоответствия между тем, что пользователь видит на экране, и тем, что имеет содержимое адаптера. Это несоответствие не важно, поскольку оно будет меньше 16 мс, но это может быть проблемой, если вы хотите использовать позицию ViewHolder для доступа к адаптеру. Иногда вам может потребоваться определить точное положение адаптера для выполнения некоторых действий в ответ на пользовательские события. В этом случае вы должны использовать этот метод, который будет вычислять позицию адаптера ViewHolder.
Anonymous
@JohnnySC хелп
Mike
@JohnnySC хелп
зачем тегать человека, которого нет в чате?
Mike
Подскажите, а сколько еще голосование будет длится?
пока не выберут нормальный варик))))0)00)))
Anonymous
зачем тегать человека, которого нет в чате?
А,тю, простите, а он же был в этом чате, отвечал мне
Alex Android
Turalllb
Это то тут причем. Это вроде если ты обновил данные и вызвал notifydatasetchanged()
в любом случае, если даже позиция верная, основной проблемы не решает. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val viewHolder = ViewHolder(viewsProducers.getValue(viewType)(recyclerView!!.context), viewType) Log.wtf(" установил слушатель фокуса ") viewHolder.itemView.setOnFocusChangeListener { v, hasFocus -> Log.wtf(" позиция id = ${v.id} + " ) } return viewHolder }. фокусы устанавливаются, а вызываются только у одного типа вьюх.. думал может дело в том, что id у них -1, но у тех вьюх на которых работает , у них тоже -1 . пробовал задавать id, тоже не работает. в верстках все вьюхи focusable = true
Iuriich
У корневой вьюхи, или к чему ты там привязываешь
Aleksandr
Привет, вопрос: как то можно проверить что конкретный пользователь нашего приложения уже оценил/ещё не оценил его в google play?
Turalllb
itemView это че такое? Покажи xml элемента
урааа я случайно нашел проблему. только не совсем еще понял почему это мешает. itemView это например class ProjectCardView(context: Context) : LinearLayout в этот классе override fun onAttachedToWindow() { super.onAttachedToWindow() setFocusable(1.12f, R.drawable.back_expanded_graycard, R.drawable.back_normal_black_card) вот если убрать setFocusable они работают, но естетсвенно при наведении фокуса вьюха перестает увеличиваться в размер, анимашки нет
Anonymous
ребят, как в оверлее сделать чтобы оно имело размеры как у разметки в XML
Anonymous
Anonymous
вот хочу чтобы 40dp было и в ширину и в высоту
Yelnur
Всем привет. Вопрос: как сделать так, чтобы Unix Time отображался так мол: 24 дня назад, год назад. Знаю как парсинг сделать, но не знаю как отсчет настроить. Если кто сталкивался, подскажите пожалуйста?
Denis
Спасибо
Anonymous
Спасибо
nespasibo.ru
Yelnur
😂😂😂
Anonymous
Спасибо
interface{} is this type safety?