Size: a a a

StartAndroid Ru Chat

2020 August 19

A

Abu in StartAndroid Ru Chat
Какие примерные проэкты можно сделать для резюме?
источник

D

Dauren in StartAndroid Ru Chat
Ребята как реализовать чтение кваркода?
источник

D

Dauren in StartAndroid Ru Chat
Через камеру
источник

MG

Maxim Gnatyuk in StartAndroid Ru Chat
Abu
Какие примерные проэкты можно сделать для резюме?
Чат, ТуДу лист, несложная игра
источник

A

Andrii in StartAndroid Ru Chat
привет подскажите плз
бесплатную АПИ
которая возвращает время езды между 2мя точками
источник

В

Витя in StartAndroid Ru Chat
Привет!
Не могу найти рабочий пример PagedListAdapter + AdMob, все что нашел только RecyclerView + AdMob.
Пробую реализовать сам и не могу решить проблему с бесконечной автопрокруткой в PagedListAdapter.
При прокрутке списка в самый низ, после дозагрузки элементов с сети, автоматически происходит скачок в самый низ списка, запрашивается новая дозагрузка, и так до бесконечности.
Прошу помочь, готов оплатить рабочее решение через WebMoney.

В PagedListAdapter есть следующие элементы:
- Header - первый элемент в списке
- Item - основные элементы получаемые с сети и бд - PagedListAdapter<Item, ViewHolder>
- Admob - баннер, каждый пятый элемент списка
- Loader - последний элемент в списке, показываем при дозагрузке списка

Реализовано это так:

Конфиг PagedList:
config = PagedList.Config.Builder()
           .setEnablePlaceholders(false)
           .setPageSize(10)
           .build()


PagedListAdapter:
1. Используется setHasStableIds(true)

2.
override fun getItemId(position: Int): Long
отдается уникальный id для каждого элемента списка

override fun getItem(position: Int): Item?
Отдается элемент из super.getItem(index)
Где index пересчитывается с position, с учетом наличия в списке элементов Header и Admob

override fun getItemCount(): Int
Отдается (сумма всех Item) +  (сумма всех Admob) + (1 элемент Header) + (1 элемент Loader, если он показывается сейчас)

override fun getItemViewType(position: Int): Int
Отдается тип элемента в зависимости от position - Header, Item, Admob или Loader

3. POST_COMPARATOR:
areContentsTheSame: проверяется совпадение по полю indexInResponse
areItemsTheSame: проверяется равность oldItem == newItem

4. Используется функция setNetworkState, с стандартного примера, в которой показыввется / прячется Loader через notifyItemInserted/notifyItemRemoved/notifyItemChanged

5. При получения контента баннера в фрагменте, который содержит этот PagedListAdapter обновляется элемент Admob, через notifyItemChanged(position)

6. Для сортировки в dataSource используется поле indexInResponse (как в стандартном примере), которое считается перед добавлением элементов Item в бд.

Спасибо!!
источник

Z

Zontik in StartAndroid Ru Chat
источник

Z

Zontik in StartAndroid Ru Chat
Ребят,всем привет,кто нибудь работал с Ktor, почему у меня ошибка выходит?
источник

Z

Zontik in StartAndroid Ru Chat
Хотя он должен выводить надпись
источник

АМ

Артем Миницкий... in StartAndroid Ru Chat
Переслано от Артем Миницкий...
источник

SM

Starikov Mark in StartAndroid Ru Chat
что по jetpack compose, я пропустил, уже юзабельно, в продакшене можно начинать юзать?
и вообще стоит его изучать и делать все новые проекты на нем?*
источник

SP

Sergey Panov in StartAndroid Ru Chat
Starikov Mark
что по jetpack compose, я пропустил, уже юзабельно, в продакшене можно начинать юзать?
и вообще стоит его изучать и делать все новые проекты на нем?*
Альфа версия будет осенью, стабильная версия во второй половине 21 года — изучить его безусловно лишним не будет, в продакшне пока не стоит  использовать.
источник

SM

Starikov Mark in StartAndroid Ru Chat
Sergey Panov
Альфа версия будет осенью, стабильная версия во второй половине 21 года — изучить его безусловно лишним не будет, в продакшне пока не стоит  использовать.
спасибо за ответ!"
источник

S

Sergey in StartAndroid Ru Chat
Привет!

Может хоть какую-нибудь идею подкинете. Во ViewPager по onPageSelected выполняется функция. Внутренний фрагмент сперва ее выполняет, потом уже переход в onResume. Если же выполнить ее по setCurrentItem т.е. программно, то сперва фрагмент будет в onResume, а потом ее выполнит. Почему может так быть?? Хоть какие-нибудь идеи))

Причем если очень быстро свайпну, будто это программно, то выполнится сперва onResume, а потом функция...
источник

DB

Dmytro Borysov in StartAndroid Ru Chat
Sergey
Привет!

Может хоть какую-нибудь идею подкинете. Во ViewPager по onPageSelected выполняется функция. Внутренний фрагмент сперва ее выполняет, потом уже переход в onResume. Если же выполнить ее по setCurrentItem т.е. программно, то сперва фрагмент будет в onResume, а потом ее выполнит. Почему может так быть?? Хоть какие-нибудь идеи))

Причем если очень быстро свайпну, будто это программно, то выполнится сперва onResume, а потом функция...
так чего нужно достигнуть? ты говоришь о ЖЦ, но мне не понятно где запускается твоя функция и что она делает, она синхронная?
источник

S

Sergey in StartAndroid Ru Chat
Dmytro Borysov
так чего нужно достигнуть? ты говоришь о ЖЦ, но мне не понятно где запускается твоя функция и что она делает, она синхронная?
Нужно, чтобы она выполнилась при свайпе тоже после onResume.

Функция запускается в onPageSelected при свайпе.
Если программно задавать позицию, то сперва выполняется функция, затем идет setCurrentItem.

Она очень длинная, тянет кучу rx цепочек.

Но результат итоговый всегда стабильно по свайпу после onResume, по setCurrentItem перед.
источник

DB

Dmytro Borysov in StartAndroid Ru Chat
Sergey
Нужно, чтобы она выполнилась при свайпе тоже после onResume.

Функция запускается в onPageSelected при свайпе.
Если программно задавать позицию, то сперва выполняется функция, затем идет setCurrentItem.

Она очень длинная, тянет кучу rx цепочек.

Но результат итоговый всегда стабильно по свайпу после onResume, по setCurrentItem перед.
сделай так, чтобы дочерний фрагмент в онРезюме скзала родителю - запусти функцию
источник

S

Sergey in StartAndroid Ru Chat
Dmytro Borysov
сделай так, чтобы дочерний фрагмент в онРезюме скзала родителю - запусти функцию
Вот думал в эту сторону. Просто получается как-то криво, наверно. Ее выполнить надо один раз. А фрагмент может переходить в onResume сколько угодно. И плюс надо учесть что при программном задании ещё она вызывается нормально...
источник

DB

Dmytro Borysov in StartAndroid Ru Chat
Sergey
Вот думал в эту сторону. Просто получается как-то криво, наверно. Ее выполнить надо один раз. А фрагмент может переходить в onResume сколько угодно. И плюс надо учесть что при программном задании ещё она вызывается нормально...
что там за функция вообще?
источник

S

Sergey in StartAndroid Ru Chat
Запускает видео на фрагменте
источник