@android_ru

Страница 906 из 3205
Andrew
30.01.2017
10:12:11
@tagantroy смотри в сторону cicerone и делай роутер фрагментов в одной активити

Kolas
30.01.2017
10:31:26
а кто-нибудь тут сталкивался с проблемой, что ресайкл не обновляется на вызовы notifyItemInserted и notifyItemRemoved? у меня он обновляется только после того как я вручную поскроллю

Google
Sergey
30.01.2017
10:35:28
а за что бан? я просто не в курсе
если кода много, не пости его в сообщении

юзай соответствующие сервисы

Kolas
30.01.2017
10:36:41
юзай соответствующие сервисы
в ресайкле проблема с этим футером. либу юзать не хочется, самому хочется написать. в листвью это просто решалось вызовом метода addFooterView

пришлось в адаптер дописать логику для этого сраного футера

Kolas
30.01.2017
10:37:43
код?
сейчас скину

Gleb
30.01.2017
10:40:21
Теперь к навороченому лэйаут дизайнеру запилили б ещё какой-нибудь drawables - designer цены бы им не было

Kolas
30.01.2017
10:40:43
код?
https://codeshare.io/5gLMv8 вот в одном из этих методов скорее всего проблема

Google
Kolas
30.01.2017
10:42:49
Ты наверное коллекцию обновлял как dataset = new Collection() или тупо поставил из параметра через =, да?
нет. я вот так делаю: int newRange = this.dataset.size() + newDataList.size(); dataset.addAll(newDataList); notifyItemRangeChanged(0, newRange);

Andrew
30.01.2017
10:43:18
@kolasmacunis и кодшер не юзай его с телефона плохо смотреть, юзай gist

Sergey
30.01.2017
10:43:44
notifyItemRangeChanged(0, newRange); не делай так никогда!

посмотри видео с ИО про RecyclerView

Kolas
30.01.2017
10:45:48
notifyItemRangeChanged(0, newRange); не делай так никогда!
почему? а какая альтернатива? вызывать для каждого элемента notifyItemInserted? мне данный способ не нравится

Sergey
30.01.2017
10:46:41
альтернатива, setHasStableIds(true), getItemId() return reallyUniqId

смерть №2 ресайклера )

Gleb
30.01.2017
10:47:31
альтернатива, setHasStableIds(true), getItemId() return reallyUniqId
а если он с разнотипными работает стэйбл разве не помеха?

Sergey
30.01.2017
10:47:57
да хоть 100 вьютайпов

Gleb
30.01.2017
10:53:12
да хоть 100 вьютайпов
? прикольно с однотипными вообще класс - я сначала мучался с этими позшнами, не понимал, хрень какая-то, потом после видюх про ресайклер)) понял простое правило - все операции с айтемами - строго по айдишникам - и прям прям перед нотифайем узнать у массива позицию по id.... ну либо не находил -1 - знач отбой - поздно. любые попытки опираться на позиции когда у тя ресайклер ходуном ходит - обламываются

Gleb
30.01.2017
10:55:02
они реюзаются
не.... id модели айтема, например _id колонка базы данных и тп

Andrew
30.01.2017
10:55:20
Если костыль нужно, то на бинде прописывать ид итема в тэг вью

Google
Sergey
30.01.2017
10:55:39
или на худой конец System.currentTime()

хотя нет )

Gleb
30.01.2017
10:57:43
Если костыль нужно, то на бинде прописывать ид итема в тэг вью
на бинде в тэг вью))) в listview так проканывало - чтоб холдеры не городить setTag(id чайлда, чайлд вью)? нормальная тема ?

Andrew
30.01.2017
10:59:01
Если кастомная обработка клика и данные из бд то свой лиснер в адаптер забрасываешь, при бинде пишешь ид в таг а лиснер вешаешь на инфлейте, в итоге у тебя таг всегда актуальный а лиснер один раз вешается. В ресайклере тож работает и пох ему стабильные иды, или нет

Но костыльненько выглядит

Sergey
30.01.2017
11:03:01
Так холдеры тож в таг пишут)
пора уже забыть этот костыль

хотя есть еще спиннеры (

Andrew
30.01.2017
11:03:41
У меня прога еще живая с листами, норм работает, лень переписывать

Sergey
30.01.2017
11:03:43
недавно писал такой

да, старое трогать не нужно

Vladimir
30.01.2017
11:07:42
вот как на джаве будет выглядеть метод, который вызывается выше: @SupressWarnings("unchecked cast") public <V extends View> V $(@IdRes id int) { return (V) findViewById(id); }
Как бы хайп, то уже прошел. Но вот этот метод все равное надо вызывать, onCreate. Не получится сразу взять и проиницилизировать private поле. Так что по сути придется писать вместо findViewById $.

Gleb
30.01.2017
11:09:33
да, старое трогать не нужно
Вообще после видюх про ресайклер, когда доходит - что они хотели сказать ресайклером, получается либо уже юзать ресайклер как ресайклер, со всеми его фичами, либо смысла в нем не больше чем в обычном листе. Они там кучу оптимизаций придумали для частичных изменений, анимаций/декораций, payloads изменений, если это не юзать тогда и смысла в ресайклере как в таковом особо никакого

Gleb
30.01.2017
11:10:49
да, старое трогать не нужно
Как они и заявили что надобность и самая главная мотивация для ресйклера была - это анимации, то что никак не вписывалось гармонично в сущ-ую арх-ру листвью

Sergey
30.01.2017
11:10:56
у меня он уже по умолчанию

Google
Anton
30.01.2017
11:21:28
какой самый удобный способ обмена сообщениями между баунд сервисом и активити? юзал мессенджер/хендлер чет не оч, щас РХбас есть еще че нить?

Sergey
30.01.2017
11:22:33
LocalBroadcastManager

Sergey
30.01.2017
11:30:17
binder

Kolas
30.01.2017
11:45:14
я чёт понять не могу, а что делает setHasStableIds(true)? я вот так понял: после вып-я этой строчки можно вызывать notifyDataSetChanged и не весь список будет перерисовываться, а только элементы с новыми id.

я правильно понял?

Admin
ERROR: S client not available

Kolas
30.01.2017
11:46:37
ну и то что вью холдер не будет меняться

Kolas
30.01.2017
11:48:39
спасибо

сделал вызов setHasStableIds(true), переписал getItemId и заменил все notifyItemInserted и прочие. всё заработало как надо. до этого ещё проблема была, что почему-то элементы в списке дублировались.

Kolas
30.01.2017
11:54:53
и код адаптера сократился на ~четверть

Sergey
30.01.2017
11:55:25
только главное чтобы были стабильные уникальные айди для каждого элемента

Антон
30.01.2017
12:04:20
Ребят, у кого нибудь есть книга Reactive Programming with RxJava - Ebook ? Готов купить со скидкой даже ) всмысле файл

Alexey
30.01.2017
12:05:09
А вы часто hashCode() используете в качестве stable id в адаптерах?

Anton
30.01.2017
12:05:15
а че нигде нет на торентах?

Sergey
30.01.2017
12:05:39
если ты уверен что у тебя нет идентичных хедеров(вьютайпов)

Alexey
30.01.2017
12:08:18
@sergeyfitis так hashCode и для не идентичных хедеров может совпасть

Google
Sergey
30.01.2017
12:08:36
например есть модель HeaderItem у нее есть title в ресайклере например только 3 таких хедера, и у каждого свой title

хеш берется по title

Gleb
30.01.2017
12:11:09
Привет всем

Антон
30.01.2017
12:11:30
нашел спасибо)

Юрий
30.01.2017
12:14:42
привет всем профи, нужен совет, юзаю ретрофит2 в дебаг режиме он без проблем парсит респонс, а релиз версии ни в какую сам респонс приходит, getBody() возвращает дефолтный объет что я делаю не так? куда копнуть?

Nikolay
30.01.2017
12:15:28
minifyEnabled false

Юрий
30.01.2017
12:15:42
Sergey
30.01.2017
12:15:42
ендпоинт на сервер

обфускацией
может он что-то вырезал не то

Юрий
30.01.2017
12:16:13
может быть

Sergey
30.01.2017
12:16:51
может быть
настраивал правила прогарда для Retrofіt и OkHttp?

Юрий
30.01.2017
12:16:55
да

с гитхаба забрал

# ALSO REMEMBER KEEPING YOUR MODEL CLASSES -keep class com.your.package.model.** { *; }

все понял

Страница 906 из 3205