Skip to content
← Back to Blog

Android Performance

Fixing RecyclerView Jank in a Content-Heavy Screen

Published July 7, 2026

Englo's Vocabulary module has 102 chapters, and its Question Bank is built for BCS and admission prep — both are the kind of list that punishes a naive RecyclerView implementation. Loading everything at once caused visible frame drops on mid-range devices, exactly the hardware our actual users carry.

The fix was pagination at the adapter level: 20 items per scroll, fetched just before the user reaches the end of the current page, rather than an infinite-scroll listener firing on every pixel of movement. We applied the same pattern across QuestionBank, SearchBrowse, and ChapterList — three modules that looked different on screen but shared the identical underlying scroll problem.

A second, less obvious source of jank was our own quiz-loading logic. Early versions loaded a full question set upfront and filtered client-side to avoid repeats within a session. We replaced that with a one-by-one loading system using an askedIds exclude list sent to the backend, so the server does the filtering and the client only ever holds one question in memory at a time.

Neither fix is exotic. What mattered was profiling before guessing — the jank wasn't where we assumed it would be until we actually measured it.

Facing a similar problem?

We've hit most of these walls already — happy to talk through yours.

Get in Touch