Что такое интеграция интеграции с переходом на глиссирование?

Я просто попытался использовать интеграцию с повторной обработкой скольжения и прочитать документ об этом, и он сказал: « Библиотека интеграции RecyclerView делает RecyclerViewPreloader доступной в вашем приложении. RecyclerViewPreloader может автоматически загружать изображения прямо перед тем, где пользователь прокручивает RecyclerView », но Я не понимаю какой-либо разницы между интеграцией повторного использования glide и только сглаживанием, пожалуйста, объясните, что такое интеграция интеграции с переходом на глиссирование? И как я могу видеть разницу?

Вот мой код:

GlideModule.kt

@GlideModule class GlideModule : AppGlideModule() { override fun applyOptions(context: Context?, builder: GlideBuilder?) { val requestOp = RequestOptions.noAnimation() .priority(Priority.LOW) builder?.setDefaultRequestOptions(requestOp) ?.setLogLevel(Log.VERBOSE) super.applyOptions(context, builder) } // Disable manifest parsing to avoid adding similar modules twice. override fun isManifestParsingEnabled(): Boolean { return false } } 

MyPreloadModelProvide.kt

 class MyPreloadModelProvide(val listUrls: List<String>, val context: Context) : PreloadModelProvider<Any> { override fun getPreloadItems(position: Int): MutableList<Any> { val url = listUrls.get(position) if (TextUtils.isEmpty(url)) { return Collections.emptyList(); } return Collections.singletonList(url); } override fun getPreloadRequestBuilder(url: Any?): RequestBuilder<*>? { return GlideApp.with(context) .load(url) } } 

MyAdapter.kt

 class MyAdapter(val listUrl: List<String>, val context: Context) : RecyclerView.Adapter<MyViewHolder>() { override fun getItemCount(): Int = listUrl.size @SuppressLint("CheckResult") override fun onBindViewHolder(holder: MyViewHolder?, position: Int) { GlideApp.with(context) .load(listUrl[position]) .into(holder?.imageView) holder?.imageView?.setOnClickListener { Toast.makeText(context, listUrl[position], Toast.LENGTH_LONG).show() } } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyViewHolder = MyViewHolder(LayoutInflater.from(parent?.context).inflate(R.layout.item, parent, false)) } class MyViewHolder(view: View?) : RecyclerView.ViewHolder(view) { var imageView: ImageView init { imageView = view!!.findViewById(R.id.img) } } 

MainActivity.kt

 class MainActivity : AppCompatActivity() { private lateinit var preloadSizeProvider: ViewPreloadSizeProvider<Any> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // glide var listUrls = listOf( "http://img.ohandroid.com/android/bulbasaur.jpg", "http://img.ohandroid.com/android/ivysaur.jpg", "http://img.ohandroid.com/android/komala.jpg", "http://img.ohandroid.com/android/turtonator.jpg", "http://img.ohandroid.com/android/togedemaru.jpg", "http://img.ohandroid.com/android/mimikyu.jpg", "http://img.ohandroid.com/android/nihilego.jpg", "http://img.ohandroid.com/android/buzzwole.jpg", "http://img.ohandroid.com/android/pheromosa.jpg", "http://img.ohandroid.com/android/xurkitree.jpg", "http://img.ohandroid.com/android/celesteela.jpg", "http://img.ohandroid.com/android/kartana.jpg", "http://img.ohandroid.com/android/guzzlord.jpg", "http://img.ohandroid.com/android/necrozma.jpg", "http://img.ohandroid.com/android/magearna.jpg", "http://img.ohandroid.com/android/marshadow.jpg" ) preloadSizeProvider = ViewPreloadSizeProvider<Any>() val modelProvider = MyPreloadModelProvide(listUrls, this) val preloader = RecyclerViewPreloader(GlideApp.with(this), modelProvider, preloadSizeProvider, 2 /*maxPreload*/) // recycler view recycler_view.layoutManager = LinearLayoutManager(this) recycler_view.setHasFixedSize(true) recycler_view.adapter = MyAdapter(listUrls, this) // THERE ARE NO DIFFERENCES IF I COMMENT THIS LINE recycler_view.addOnScrollListener(preloader) } } 

НЕ РАЗЛИВАЮТСЯ, ЕСЛИ Я КОММЕНТАРИЙ ЭТОЙ ЛИНИИ recycler_view.addOnScrollListener(preloader)

    Библиотека интеграции RecyclerView делает RecyclerViewPreloader доступной в вашем приложении.
    И RecyclerViewPreloader может автоматически загружать изображения только впереди, где пользователь прокручивает RecyclerView .

    В сочетании с правильным размером изображения и эффективной стратегией кэширования диска эта библиотека может значительно уменьшить количество загружаемых фрагментов / индикаторов, которые пользователи видят при прокрутке списков изображений, гарантируя, что изображения, которые пользователь собирается достичь, уже находятся в памяти.

    Чтобы использовать библиотеку интеграции RecyclerView , добавьте зависимость от нее в файле build.gradle :

     compile ("com.github.bumptech.glide:recyclerview-integration:4.4.0") { /*Excludes the support library because it's already included by Glide.*/ transitive = false }