ANDROID_LIVE Telegram 472
β€‹β€‹ΠšΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ RecyclerView?
#ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ #recyclerview

Ни для ΠΊΠΎΠ³ΠΎ Π½Π΅ сСкрСт, Ρ‡Ρ‚ΠΎ сСгодня RecyclerView β€” это Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ элСмСнт для ΠΏΠΎΠΊΠ°Π·Π° списков Π² прилоТСниях. И ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» максимально ΠΏΠ»Π°Π²Π½ΠΎ.

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

πŸ”ΈΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Garbage collector ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π½Π΅ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ UI, Ссли Π±Ρ‹ Π½Π΅ bitmap pool, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ встроСн Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π”ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ сСгодня пытаСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, поэтому ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.

πŸ”ΈΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту для ImageView. ΠžΡ‡Π΅Π½ΡŒ часто изобраТСния, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ с сСрвСра ΠΈΠΌΠ΅ΡŽΡ‚ динамичСскиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты. Если ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ изобраТСния Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Β«ΠΌΠΈΠ³Π°Π½ΠΈΠ΅Β» интСрфСйса. Π§Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон Π·Π°Ρ€Π°Π½Π΅Π΅, Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

πŸ”ΈΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ onBindViewHolder. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ onBindViewHolder ΠΈ сдСлайтС Π΅Π³ΠΎ максимально Π»Π΅Π³ΠΊΠΈΠΌ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ даст прирост ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ RecyclerView

πŸ”ΈΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ DiffUtil. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DiffUtil. Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для измСнСния элСмСнтов ΠΏΠΎ позициям, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ списка (notifyDataSetChanged). ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Ρ‰Ρ‘ большС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой список, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ асинхронный DiffUtil Π½Π° coroutines. Бсылка с дСталями Ρ‚ΡƒΡ‚.

πŸ”ΈΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… view. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ становится Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ Π² RecyclerView. Π”ΠΎΠ±Π°Π²Π»ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π²Π°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° layout, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ‚ вСса для отрисовки.

πŸ”ΈΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ setHasFixedSize. Если элСмСнты вашСго RecyclerView ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты, Ρ‚ΠΎ эта функция ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ списка.

πŸ”ΈΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ RecyclerViewPool. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ являСтся ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ RecyclerViewPool ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… элСмСнтов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.

πŸ”ΈΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с setItemViewCacheSize. Из Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ слСдуСт, Ρ‡Ρ‚ΠΎ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ устанавливаСт количСство ViewHolder, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° экранС ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ… Π² RecyclerViewPool. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с этим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство ViewHolder, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π½Π° экранС ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² onBindViewHolder.

А Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Ρ‹ Π΅Ρ‰Ρ‘ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ этому списку?



tgoop.com/android_live/472
Create:
Last Update:

β€‹β€‹ΠšΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ RecyclerView?
#ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ #recyclerview

Ни для ΠΊΠΎΠ³ΠΎ Π½Π΅ сСкрСт, Ρ‡Ρ‚ΠΎ сСгодня RecyclerView β€” это Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ элСмСнт для ΠΏΠΎΠΊΠ°Π·Π° списков Π² прилоТСниях. И ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» максимально ΠΏΠ»Π°Π²Π½ΠΎ.

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

πŸ”ΈΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Garbage collector ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π½Π΅ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ UI, Ссли Π±Ρ‹ Π½Π΅ bitmap pool, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ встроСн Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π”ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ сСгодня пытаСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, поэтому ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.

πŸ”ΈΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту для ImageView. ΠžΡ‡Π΅Π½ΡŒ часто изобраТСния, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ с сСрвСра ΠΈΠΌΠ΅ΡŽΡ‚ динамичСскиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты. Если ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ изобраТСния Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Β«ΠΌΠΈΠ³Π°Π½ΠΈΠ΅Β» интСрфСйса. Π§Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон Π·Π°Ρ€Π°Π½Π΅Π΅, Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ.

πŸ”ΈΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ onBindViewHolder. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ onBindViewHolder ΠΈ сдСлайтС Π΅Π³ΠΎ максимально Π»Π΅Π³ΠΊΠΈΠΌ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ даст прирост ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ RecyclerView

πŸ”ΈΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ DiffUtil. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DiffUtil. Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для измСнСния элСмСнтов ΠΏΠΎ позициям, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ списка (notifyDataSetChanged). ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Ρ‰Ρ‘ большС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой список, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ асинхронный DiffUtil Π½Π° coroutines. Бсылка с дСталями Ρ‚ΡƒΡ‚.

πŸ”ΈΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… view. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ становится Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ Π² RecyclerView. Π”ΠΎΠ±Π°Π²Π»ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π²Π°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° layout, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ‚ вСса для отрисовки.

πŸ”ΈΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ setHasFixedSize. Если элСмСнты вашСго RecyclerView ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты, Ρ‚ΠΎ эта функция ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ списка.

πŸ”ΈΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ RecyclerViewPool. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ являСтся ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ RecyclerViewPool ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… элСмСнтов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.

πŸ”ΈΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ с setItemViewCacheSize. Из Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ слСдуСт, Ρ‡Ρ‚ΠΎ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ устанавливаСт количСство ViewHolder, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° экранС ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ… Π² RecyclerViewPool. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с этим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство ViewHolder, Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π½Π° экранС ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² onBindViewHolder.

А Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Ρ‹ Π΅Ρ‰Ρ‘ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ этому списку?

BY Android Live πŸ€–




Share with your friend now:
tgoop.com/android_live/472

View MORE
Open in Telegram


Telegram News

Date: |

Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content β€œcontravenes the laws of Hong Kong.” fire bomb molotov November 18 Dylan Hollingsworth yau ma tei Informative Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up.
from us


Telegram Android Live πŸ€–
FROM American