# recyclerview

RecyclerView is an Android technology for creating dynamic lists.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Handle RecyclerView's scroll events in custom TopAppBarScrollBehavior

DevFeed: [Handle RecyclerView's scroll events in custom TopAppBarScrollBehavior](<https://devfeed.tech/articles/handle-recyclerview-s-scroll-events-in-custom-topappbarscrollbehavior-28720.md>)

Original publisher: [Read original article](<https://le0nidas.gr/2026/02/08/handle-recyclerviews-scroll-events-in-custom-topappbarscrollbehavior/>)

Author: Leonidas Partsas

Published: 2026-02-08T11:58:14Z

Content type: tutorial

Language: en

Sources: [le0nidas](<https://devfeed.tech/sources/le0nidas.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [animation](<https://devfeed.tech/tags/animation.md>), [behavior](<https://devfeed.tech/tags/behavior.md>), [compose](<https://devfeed.tech/tags/compose.md>), [featured](<https://devfeed.tech/tags/featured.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [top-app-bar](<https://devfeed.tech/tags/top-app-bar.md>)

### AI overview

A tutorial on handling RecyclerView scroll events in a custom TopAppBarScrollBehavior for Compose. It implements fully collapsed and expanded states, adds animation and scroll buffering, and extends the approach to an exit-until-collapsed behavior.

### Source excerpt

In a previous post we saw how to send a RecyclerView's scroll events to a compose parent so that we can leverage the top bar's enter always scroll behavior. The result was good but not great. The top app bar was collapsing and expanding as expected but it was also rendering partially during the transition: ... Continue reading Handle RecyclerView's scroll events in custom TopAppBarScrollBehavior ->

## Send RecyclerView's scroll events to a compose parent

DevFeed: [Send RecyclerView's scroll events to a compose parent](<https://devfeed.tech/articles/send-recyclerview-s-scroll-events-to-a-compose-parent-28716.md>)

Original publisher: [Read original article](<https://le0nidas.gr/2025/08/10/send-recyclerviews-scroll-events-to-a-compose-parent/>)

Author: Leonidas Partsas

Published: 2025-08-10T06:58:04Z

Content type: tutorial

Language: en

Sources: [le0nidas](<https://devfeed.tech/sources/le0nidas.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [screen](<https://devfeed.tech/topics/screen.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [compose](<https://devfeed.tech/tags/compose.md>), [enter-always-behavior](<https://devfeed.tech/tags/enter-always-behavior.md>), [featured](<https://devfeed.tech/tags/featured.md>), [fragment](<https://devfeed.tech/tags/fragment.md>), [fragments](<https://devfeed.tech/tags/fragments.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [nested-scroll](<https://devfeed.tech/tags/nested-scroll.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [screen](<https://devfeed.tech/tags/screen.md>), [top-app-bar](<https://devfeed.tech/tags/top-app-bar.md>)

### AI overview

This tutorial explains how to send RecyclerView scroll events to a Jetpack Compose parent during a gradual migration from fragment-based Android screens. It describes connecting Compose nested-scroll behavior to a RecyclerView using a NestedScrollDispatcher so a Compose top bar can respond to scrolling.

### Source excerpt

We have an app that relies heavily on fragments. Every screen is an activity that hosts a fragment that hosts a recycler view: We want to start migrating the screens to compose by keeping the screen's content and placing it in a compose environment. This means that our activities will call setContent { } instead ... Continue reading Send RecyclerView's scroll events to a compose parent ->

## Simplify ViewBinding in Android with ViewBindingPropertyDelegate 2.0

DevFeed: [Simplify ViewBinding in Android with ViewBindingPropertyDelegate 2.0](<https://devfeed.tech/articles/simplify-viewbinding-in-android-with-viewbindingpropertydelegate-2-0-25960.md>)

Original publisher: [Read original article](<https://kirillr.medium.com/whats-new-in-vbpd-2-0-a83565134cff?source=rss-7a0a233f88a2------2>)

Author: Kirill Rozov

Published: 2025-02-04T13:30:45Z

Content type: release

Language: en

Sources: [Stories by Kirill Rozov on Medium](<https://devfeed.tech/sources/stories-by-kirill-rozov-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Library](<https://devfeed.tech/topics/library.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-jetpack](<https://devfeed.tech/tags/android-jetpack.md>), [fragments](<https://devfeed.tech/tags/fragments.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [library](<https://devfeed.tech/tags/library.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [release](<https://devfeed.tech/tags/release.md>), [ui](<https://devfeed.tech/tags/ui.md>), [view-binding](<https://devfeed.tech/tags/view-binding.md>)

### AI overview

This article announces ViewBindingPropertyDelegate 2.0, a release that refactors how the Android library manages ViewBinding lifecycles. It replaces Jetpack Lifecycle-based detection with component lifecycle callbacks for Fragments and Activities, improving the timing of reference clearing and addressing issues related to Fragment animations. The release also supports lazy ViewBinding creation and aims to prevent memory leaks.

### Source excerpt

I'm excited to announce the release of ViewBindingPropertyDelegate 2.0, which introduces significant under-the-hood refactoring to enhance the library's stability and performance. In this article, I'll highlight the most important changes and explain how they improve the library's functionality. Brief Introduction ViewBindingPropertyDelegate(VBPD) is a lightweight library designed to simplify the use of Android's ViewBinding by: Managing the ViewBinding lifecycle and clearing references to prevent memory leaks. Eliminating the need to maintain nullable references to Views or ViewBindings. Creating ViewBindings lazily. The library supports usage in various components, including Activities, Fragments, ViewGroups, and RecyclerView.ViewHolders. class ProfileFragment : Fragment(R.layout.profile) { private val profileBinding: ProfileBinding by viewBinding(ProfileBinding::bind) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // ProfileBinding instance will be created lazily on first access profileBinding.name.text = ... } override fun onDestroyView() { super.onDestroyView() // profileBinding reference will be cleared after onDestroyView() } }Changes in 2.0Transition from Lifecycle to Component Callbacks In previous versions (1.x), VBPD relied on Jetpack's Lifecycle to detect when a View was being destroyed. This approach had a limitation: the Lifecycle callback methods could be invoked before Fragment.onDestroyView(), while the ViewBinding reference was still needed. To address this, VBPD postponed clearing the ViewBinding reference using an Android Handler after onDestroyView(), when the Fragment's View LifecycleOwner transitioned to the DESTROYED state. In version 2.0, VBPD now utilizes FragmentManager.FragmentLifecycleCallbacks to detect when a Fragment's view is destroyed. The key difference lies in the timing of these callbacks, allowing for more precise management of the ViewBinding lifecycle. // Sou

## Data Binding: BindingAdapter

DevFeed: [Data Binding: BindingAdapter](<https://devfeed.tech/articles/data-binding-bindingadapter-24743.md>)

Original publisher: [Read original article](<https://medium.com/yazio-engineering/data-binding-bindingadapter-7d0824b1efff?source=rss----65bd178b00af---4>)

Author: Paul Woitaschek

Published: 2021-11-19T08:06:16Z

Content type: tutorial

Language: en

Sources: [YAZIO Engineering - Medium](<https://devfeed.tech/sources/yazio-engineering-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [RxJava](<https://devfeed.tech/topics/rxjava.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [code](<https://devfeed.tech/tags/code.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This tutorial explains how to use Android Data Binding and a BindingAdapter to apply strike-through formatting to a TextView based on a view model. The author reports reducing RecyclerView ViewHolder boilerplate by about 50%.

### Source excerpt

For a long time I did not investigate further into https://developer.android.com/tools/data-binding/guide.html but recently it just got my attention. Just like Kotlin or RxJava this was something that was constantly trying to get my attention so I decided to give it a try and to see how it works while writing my new notes app. And I must say: I'm impressed. I applied it on the ViewHolder of my RecyclerView and reduced the boilerplate code by about 50%. But there were some issues. Issues The biggest I had was manipulating the view. The grey text could be simply archieved by setting the view enabled based on the view model: android:enabled="@{!model.done()}" As the text was set to @color/abc_primary_text_material_light from the support library this automatically works. But how to set the strike through? I did not wanted to call all these `findViewById` any more as that would defeat the purpose of DataBinding. Solution It turned out there was a simple solution, called BindingAdapter> https://developer.android.com/reference/android/databinding/BindingAdapter.html Basically you just define a static method and annotate it as a binding adapter. So for strikeThrough it is: @BindingAdapter("text:strike") public static void setStrike(TextView text, boolean strike) { if (strike) { text.setPaintFlags(text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); } else { text.setPaintFlags(text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG); } } So now you can set it just as a regular xml attribute: android:strike="@{model.done()}" Data Binding: BindingAdapter was originally published in Yazio Engineering on Medium, where people are continuing the conversation by highlighting and responding to this story.

## Using @JvmSuppressWildcards to resolve Kotlin and Java generic type issues

DevFeed: [Using @JvmSuppressWildcards to resolve Kotlin and Java generic type issues](<https://devfeed.tech/articles/jvmsuppresswildcards-the-secret-sauce-to-your-sandwich-style-generics-25906.md>)

Original publisher: [Read original article](<https://chao2zhang.medium.com/jvmsuppresswildcards-the-secret-sauce-to-your-sandwich-style-generics-b0093aa5979d?source=rss-d19045640fe------2>)

Author: Chao Zhang

Published: 2021-02-23T16:01:15Z

Content type: tutorial

Language: en

Sources: [Stories by Chao Zhang on Medium](<https://devfeed.tech/sources/stories-by-chao-zhang-on-medium.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [generics](<https://devfeed.tech/topics/generics.md>), [Java](<https://devfeed.tech/topics/java.md>), [Android](<https://devfeed.tech/topics/android.md>), [Dagger](<https://devfeed.tech/topics/dagger.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [compilation-error](<https://devfeed.tech/tags/compilation-error.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [generics](<https://devfeed.tech/tags/generics.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-generics](<https://devfeed.tech/tags/kotlin-generics.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>)

### AI overview

This tutorial explains how Kotlin generics interact with Java in mixed Kotlin-Java codebases, including Android applications and Dagger-based dependencies. It shows how the @JvmSuppressWildcards annotation can resolve compilation and type-inference problems when Kotlin generic APIs are consumed by Java code.

### Source excerpt

Photo: amirali mirhashemian from Unsplash If generic types are exposed in Kotlin API, consider @JvmSuppressWildcards so that your Java consumer can compile successfully. Kotlin generics are different from (in my opinion, smarter than) Java generics. Kotlin generics has declaration-site variance and type projections, which are officially documented here. Generics is a gigantic topic itself. My usual practice is to leverage IDE warnings and compiler error messages to fix my code since they usually contain the necessary information to show you where you did wrong. However, as we are Kotlinizing our codebase from Java to Kotlin, it is possible to have a sandwich-style code dependency that mixes Java code and Kotlin code. In such cases, when dealing with generics, your compiler and IDE may not be smart enough to help you fix those issues. What is sandwich-style code dependency?🥪 Sandwich-style Kotlin conversion At a certain time during your Java to Kotlin conversion, there could be some Java code depending on Kotlin code, which in turn depends on Java code. A typical example on Android is that your app code in Java depending on your library in Kotlin, which depends on Android SDK in Java. Even if your app code is written purely in Kotlin, the sandwich might still exist: The Java-based annotation processing Dagger, depends on your app code in Kotlin, which depends on Android SDK in Java. Now let's look at how the secret sauce @JvmSuppressWildcards can help us by making our generic sandwich tasty. Sandwich: List<Object> in RecyclerView methodshttps://medium.com/media/87fd0c63db2b9c82af2b241bf61cef31/href With the code above, the following compilation error is observed: MyChildAdapter.java:13: error: name clash: onBindViewHolder(MyViewHolder,int,List<Object>) in MyChildAdapter overrides a method whose erasure is the same as another method, yet neither overrides the other The error message leads us to think that we need to change our type here: Change the Kotlin generic para

## Fixing RecyclerView nested scrolling in opposite direction

DevFeed: [Fixing RecyclerView nested scrolling in opposite direction](<https://devfeed.tech/articles/fixing-recyclerview-nested-scrolling-in-opposite-direction-25879.md>)

Original publisher: [Read original article](<https://bladecoder.medium.com/fixing-recyclerview-nested-scrolling-in-opposite-direction-f587be5c1a04?source=rss-54910f05af37------2>)

Author: Christophe Beyls

Published: 2020-03-26T15:24:30Z

Content type: tutorial

Language: en

Sources: [Stories by Christophe Beyls on Medium](<https://devfeed.tech/sources/stories-by-christophe-beyls-on-medium.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [layoutmanager](<https://devfeed.tech/tags/layoutmanager.md>), [nested-scroll](<https://devfeed.tech/tags/nested-scroll.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>)

### AI overview

This tutorial explains the nested-scrolling behavior of Android RecyclerView, focusing on layouts where horizontally scrolling lists are nested inside a vertically scrolling list. It describes why touch events can be intercepted by the parent and cause unexpected vertical scrolling, with examples such as Netflix-like video interfaces and Google Play Store layouts.

### Source excerpt

Photo by Tabl-trai under Creative Commons licenceand making ViewPager2 usable RecyclerView is one of the main building blocks of Android user interfaces today. It's more capable and flexible than its ListView predecessor but this also leads to more complexity and new problems. One core feature of RecyclerView is the externalization of its layout engine to components called LayoutManagers, which are no longer limited to vertical scrolling only. Most implementations allow to choose between horizontal and vertical scrolling and a LayoutManager could technically support both at the same time. RecyclerView also supports nested scrolling by implementing the NestedScrollingChild3 interface, which means it can cooperate with a parent view implementing NestedScrollingParent3 when both are configured to scroll in the same direction. In a nutshell, the scrolling child intercepts a scroll event and initiates a nested scroll in cooperation with the scrolling parent. Depending on its internal logic, the parent optionally consumes the scroll before or after the child, until they both reach their available scroll distance. A single scroll event may be consumed by both the parent and child with a seamless transition. For example, this mechanism is used when a RecyclerView is placed inside a CoordinatorLayout next to an app bar which will automatically slide up or collapse when a scroll gesture is initiated. Note that RecyclerView doesn't implement NestedScrollingParent3, so using a scrollable child inside a RecyclerView which scrolls in the same direction is not supported. However, Google currently provides a workaround to implement nested scrolling in a ViewPager2.The problem What about nested scrolling in the opposite direction? This should be supported out-of-the-box, since a vertical scrolling view is not supposed to intercept horizontal gestures and vice versa. In practice this works well with the legacy ViewPager which only scrolls horizontally, ignoring vertical gestures. But

## Suspending over Views -- Example

DevFeed: [Suspending over Views -- Example](<https://devfeed.tech/articles/suspending-over-views-example-24928.md>)

Original publisher: [Read original article](<https://medium.com/androiddevelopers/suspending-over-views-example-260ce3dc9100?source=rss-9303277cb6db------2>)

Author: Chris Banes

Published: 2019-12-02T08:57:37Z

Content type: tutorial

Language: en

Sources: [Chris Banes on Medium](<https://devfeed.tech/sources/chris-banes-on-medium.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [callback](<https://devfeed.tech/tags/callback.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [development](<https://devfeed.tech/tags/development.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A worked example from the Tivi app shows how coroutines can simplify asynchronous UI operations. It examines a broken episode-expanding animation caused by reused item IDs and views that may not be attached to the RecyclerView.

### Source excerpt

Illustration by Virginia PoltrackSuspending over views -- exampleA worked example from the Tivi app This blog post is the second of two which explores how coroutines enables you to write complex asynchronous UI operations in a much simpler way. The first post goes through the theory, while this post demonstrates how they fix a problem. If you want to recap the first post, you can find it here: Suspending over Views Let's take what we learnt in the previous post and apply it to a real-world app use case. The problem Here we have the TV show details UI from the Tivi sample app. As well as information about the show, it lists the show's seasons and episodes. When the user clicks one of the episodes, the episode's details are displayed using an animation which expands the clicked item: Episode expanding (20% speed) The app uses the InboxRecyclerView library to handle the expanding animation above: https://medium.com/media/af84b36b2b481525fbab682b6a6cffa7/href InboxRecyclerView works by us providing the item ID of view to expand. It then finds the matching view from the RecyclerView items, and performs the animation on it. Now let's look at the issue we're trying to fix. Near the top of the same UI is a different item, which shows the user their next episode to watch. It uses the same view type as the individual episode item shown above, but has a different item ID. To aid development, I was lazy and used the same onEpisodeItemClicked() for this item. Unfortunately this led to a broken animation when clicked. Wrong item expanding (20% speed) Instead of expanding the clicked item, the library expands a seemingly random item at the top. This is not the effect we want, and is caused by some underlying issues: The ID we use in the click listener is taken directly from the Episode class. This ID maps to the individual episode item within the season list. The episode item may not be attached to the RecyclerView. The user would need to have expanded the season and scrolled so th

## Building a gesture driven Reddit app

DevFeed: [Building a gesture driven Reddit app](<https://devfeed.tech/articles/building-a-gesture-driven-reddit-app-29019.md>)

Original publisher: [Read original article](<https://saket.me/building-a-gesture-driven-reddit-app/>)

Author: Saket Narayan

Published: 2019-06-16T17:45:13Z

Content type: tutorial

Language: en

Sources: [Saket Narayan](<https://devfeed.tech/sources/saket-narayan.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Reddit](<https://devfeed.tech/topics/reddit.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [apis](<https://devfeed.tech/tags/apis.md>), [components](<https://devfeed.tech/tags/components.md>), [framework](<https://devfeed.tech/tags/framework.md>), [gestures](<https://devfeed.tech/tags/gestures.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [public-speaking](<https://devfeed.tech/tags/public-speaking.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

An exploratory talk about building Dank, an open-source gesture-driven Reddit app for Android. It demonstrates material design, framework APIs, gestures, spans, custom UI components, nested scrolling, collapsible comments, image dismissal, and real-time Markdown editing.

### Source excerpt

An exploratory talk that showcases how Android can deliver a beautiful experience to the user using material design principles and various framework APIs like gestures and spans. This talk walks the user through a collection of concrete examples of custom UI components and their implementations in my gesture driven Reddit app, Dank. Recreating Google Inbox's [...] The post Building a gesture driven Reddit app appeared first on Saket Narayan.

## Simplifying DiffUtil with RxJava

DevFeed: [Simplifying DiffUtil with RxJava](<https://devfeed.tech/articles/simplifying-diffutil-with-rxjava-29036.md>)

Original publisher: [Read original article](<https://saket.me/simplifying-diffutil-rxjava/>)

Author: Saket Narayan

Published: 2018-02-18T07:45:54Z

Content type: tutorial

Language: en

Sources: [Saket Narayan](<https://devfeed.tech/sources/saket-narayan.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Code](<https://devfeed.tech/topics/code.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [generics](<https://devfeed.tech/tags/generics.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [with](<https://devfeed.tech/tags/with.md>)

### AI overview

A tutorial on using RxJava's scan() and compose() operators to simplify DiffUtil implementations for RecyclerView adapter updates and item change animations.

### Source excerpt

One of my favorite parts of RxJava is that no matter how complex a state management usecase is, there's always an operator for that™. During a recent code cleanup, I found a very cool usecase of RxJava's scan() and compose() operators for simplifying the usually verbose DiffUtil implementation. I had been delaying writing this post [...] The post Simplifying DiffUtil with RxJava appeared first on Saket Narayan.

## Writing a RecyclerView Adapter in Kotlin (KAD 16)

DevFeed: [Writing a RecyclerView Adapter in Kotlin (KAD 16)](<https://devfeed.tech/articles/writing-a-recyclerview-adapter-in-kotlin-kad-16-27219.md>)

Original publisher: [Read original article](<https://antonioleiva.com/recyclerview-adapter-kotlin>)

Published: 2017-03-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Code](<https://devfeed.tech/topics/code.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [data-class](<https://devfeed.tech/tags/data-class.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-android](<https://devfeed.tech/tags/kotlin-android.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [viewholder](<https://devfeed.tech/tags/viewholder.md>)

### AI overview

This tutorial explains how to create a simple, immutable RecyclerView Adapter in Kotlin for an Android app. It covers the model, adapter structure and constructor, method implementations, view inflation, and a ViewHolder that maps model values and click listeners to views.

### Source excerpt

Everything Android, Kotlin and other random topics

## Kotlin Recipes for Android (II): RecyclerView and DiffUtil

DevFeed: [Kotlin Recipes for Android (II): RecyclerView and DiffUtil](<https://devfeed.tech/articles/kotlin-recipes-for-android-ii-recyclerview-and-diffutil-27220.md>)

Original publisher: [Read original article](<https://antonioleiva.com/recyclerview-diffutil-kotlin>)

Published: 2016-09-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>)

### AI overview

A Kotlin tutorial showing how to simplify Android RecyclerView updates with DiffUtil. It progresses from direct adapter notifications to delegation and extension functions for calculating item changes and identifying matching items.

### Source excerpt

Everything Android, Kotlin and other random topics

## Data Binding: BindingAdapter

DevFeed: [Data Binding: BindingAdapter](<https://devfeed.tech/articles/data-binding-bindingadapter-26005.md>)

Original publisher: [Read original article](<https://medium.com/yazio-engineering/data-binding-bindingadapter-7d0824b1efff?source=rss-fbf9b6d94e65------2>)

Author: Paul Woitaschek

Published: 2016-01-31T22:16:59Z

Content type: tutorial

Language: en

Sources: [Stories by Paul Woitaschek on Medium](<https://devfeed.tech/sources/stories-by-paul-woitaschek-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [code](<https://devfeed.tech/tags/code.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This tutorial explains how to use Android Data Binding and BindingAdapter to manipulate views without repeated findViewById calls. It demonstrates defining a binding adapter that applies or removes strike-through text based on a model value.

### Source excerpt

For a long time I did not investigate further into https://developer.android.com/tools/data-binding/guide.html but recently it just got my attention. Just like Kotlin or RxJava this was something that was constantly trying to get my attention so I decided to give it a try and to see how it works while writing my new notes app. And I must say: I'm impressed. I applied it on the ViewHolder of my RecyclerView and reduced the boilerplate code by about 50%. But there were some issues. Issues The biggest I had was manipulating the view. The grey text could be simply archieved by setting the view enabled based on the view model: android:enabled="@{!model.done()}" As the text was set to @color/abc_primary_text_material_light from the support library this automatically works. But how to set the strike through? I did not wanted to call all these `findViewById` any more as that would defeat the purpose of DataBinding. Solution It turned out there was a simple solution, called BindingAdapter> https://developer.android.com/reference/android/databinding/BindingAdapter.html Basically you just define a static method and annotate it as a binding adapter. So for strikeThrough it is: @BindingAdapter("text:strike") public static void setStrike(TextView text, boolean strike) { if (strike) { text.setPaintFlags(text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); } else { text.setPaintFlags(text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG); } } So now you can set it just as a regular xml attribute: android:strike="@{model.done()}" Data Binding: BindingAdapter was originally published in Yazio Engineering on Medium, where people are continuing the conversation by highlighting and responding to this story.

## Set a click listener to a RecyclerView

DevFeed: [Set a click listener to a RecyclerView](<https://devfeed.tech/articles/set-a-click-listener-to-a-recyclerview-27221.md>)

Original publisher: [Read original article](<https://antonioleiva.com/recyclerview-listener>)

Published: 2015-12-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>)

### AI overview

This tutorial explains how to add click handling to an Android RecyclerView adapter. It demonstrates passing a listener through the adapter constructor, using a Java interface or a Kotlin lambda, and assigning the listener when binding item views.

### Source excerpt

Everything Android, Kotlin and other random topics

## Layout animations on RecyclerView

DevFeed: [Layout animations on RecyclerView](<https://devfeed.tech/articles/layout-animations-on-recyclerview-27191.md>)

Original publisher: [Read original article](<https://antonioleiva.com/layout-animations-on-recyclerview>)

Published: 2015-09-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [animation](<https://devfeed.tech/tags/animation.md>), [code](<https://devfeed.tech/tags/code.md>), [layout](<https://devfeed.tech/tags/layout.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A tutorial shows how to add controlled diagonal layout animations to RecyclerView using XML-defined layout animations. It discusses animation order, row and column delays, direction, slide-in effects, and timing the animation after the app opens.

### Source excerpt

Everything Android, Kotlin and other random topics

## Android Material Design tools and techniques from a MaterialFest talk

DevFeed: [Android Material Design tools and techniques from a MaterialFest talk](<https://devfeed.tech/articles/materialize-your-app-27201.md>)

Original publisher: [Read original article](<https://antonioleiva.com/materialize-app>)

Published: 2015-02-08T00:00:00Z

Content type: article

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [code](<https://devfeed.tech/tags/code.md>), [github](<https://devfeed.tech/tags/github.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [play-store](<https://devfeed.tech/tags/play-store.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>)

### AI overview

This article recaps a MaterialFest talk on applying Material Design in Android. It covers AppCompat and Toolbar, Lollipop transitions and ripples, RecyclerView, CardView, Palette, animations, scroll effects, and activity transitions, with links to slides, example code, and a Play Store app.

### Source excerpt

Everything Android, Kotlin and other random topics

## Selecting Items of a RecyclerView using StateListDrawables

DevFeed: [Selecting Items of a RecyclerView using StateListDrawables](<https://devfeed.tech/articles/selecting-items-of-a-recyclerview-using-statelistdrawables-29122.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/statelistdrawables-for-recyclerview-selection/>)

Author: Wolfram Rittmeyer

Published: 2014-08-22T08:16:21Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [contextual-actionbar](<https://devfeed.tech/tags/contextual-actionbar.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [statelistdrawable](<https://devfeed.tech/tags/statelistdrawable.md>)

### AI overview

This tutorial presents an adapter-based approach for implementing multi-item selection in an Android RecyclerView. It recommends using StateListDrawables and the activated state, with contextual action bar support for showing selection counts and bulk deletion.

### Source excerpt

Last week, after I published my introduction to RecyclerView Paul Betts asked on Twitter whether ItemDecorators are useful for displaying the selection state of items. Well, I think using them for selection is not the right way to go. Instead, I think that you should stick with StateListDrawables and the activated state. The use case [...] Continue Reading "Selecting Items of a RecyclerView using StateListDrawables" The post Selecting Items of a RecyclerView using StateListDrawables appeared first on Grokking Android.

## A First Glance at Android's RecyclerView

DevFeed: [A First Glance at Android's RecyclerView](<https://devfeed.tech/articles/a-first-glance-at-android-s-recyclerview-29117.md>)

Original publisher: [Read original article](<https://www.grokkingandroid.com/first-glance-androids-recyclerview/>)

Author: Wolfram Rittmeyer

Published: 2014-08-14T09:59:14Z

Content type: tutorial

Language: en

Sources: [Grokking Android](<https://devfeed.tech/sources/grokking-android.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [android-l](<https://devfeed.tech/tags/android-l.md>), [api](<https://devfeed.tech/tags/api.md>), [developer-preview](<https://devfeed.tech/tags/developer-preview.md>), [google](<https://devfeed.tech/tags/google.md>), [google-i-o](<https://devfeed.tech/tags/google-i-o.md>), [itemanimator](<https://devfeed.tech/tags/itemanimator.md>), [itemdecoration](<https://devfeed.tech/tags/itemdecoration.md>), [l-developer-preview](<https://devfeed.tech/tags/l-developer-preview.md>), [layoutmanager](<https://devfeed.tech/tags/layoutmanager.md>), [onitemtouchlistenerter](<https://devfeed.tech/tags/onitemtouchlistenerter.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [viewholder](<https://devfeed.tech/tags/viewholder.md>)

### AI overview

This tutorial introduces Android's RecyclerView, explaining its internal classes and interfaces, how they interact, and how developers can use the component. It describes RecyclerView as a flexible view for displaying large data sets and explains how recycling can reduce CPU and memory use. The article notes that the API was not yet finalized in the Android L Developer Preview.

### Source excerpt

At this year's Google I/O, Google released a preview to the upcoming Android version. The so called L Developer Preview. This is a very big improvement over previous releases and I really love that Google is doing this. I think we all benefit by this decision. As developers and as consumers alike! Part of this [...] Continue Reading "A First Glance at Android's RecyclerView" The post A First Glance at Android's RecyclerView appeared first on Grokking Android.

## RecyclerView in Android: The basics

DevFeed: [RecyclerView in Android: The basics](<https://devfeed.tech/articles/recyclerview-in-android-the-basics-27218.md>)

Original publisher: [Read original article](<https://antonioleiva.com/recyclerview>)

Published: 2014-06-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [recyclerview](<https://devfeed.tech/topics/recyclerview.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [itemanimator](<https://devfeed.tech/tags/itemanimator.md>), [layoutmanager](<https://devfeed.tech/tags/layoutmanager.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [viewholder](<https://devfeed.tech/tags/viewholder.md>)

### AI overview

This tutorial introduces Android RecyclerView as an adapter-based view intended to succeed ListView and GridView. It explains the roles of RecyclerView.Adapter, LayoutManager, and ItemAnimator, including ViewHolder requirements, data binding, event handling, item updates, and layout management.

### Source excerpt

Everything Android, Kotlin and other random topics