When writing an Android app, one useful feature that developers use when dealing with a potentially long list of options is fast scrolling. First introduced in Android 1.5/Cupcake, this functionality allows a user to grab the scrollbar and drag it down to scroll section-by-section, rather than item-by-item. It appears, however, that the KitKat implementation of this classic Android feature has introduced a bug which is driving some developers crazy.

bug_watch

 

Symptoms

This bug is certainly one that affects developers more than end users. Essentially, what happens is that you enable fast scrolling in your ListView either via XML or in code using the setFastScrollEnabled() method of the AbsListView class. When you run your app, you notice that the fast scrolling does not actually engage the first time the ListView loads. Instead, you must either flip orientations to cause a configuration change, or go to another activity, then return to your ListView.

Cause

At this time, we aren't entirely sure what's causing this issue, but I'd speculate that this is a relatively simple bug somewhere in the framework library. Based on my own experience as a developer, it could be as simple as an event not getting called in the right spot, or not getting called at all.

Workaround

One of the worst things about this bug is the fact that there really is no workaround. No amount of coding hacks seem to be able to get Android to play ball.

Closing

Fast scroll is a feature whose importance greatly varies with the type of app you're writing, but if you need it, this bug is sure to be an annoyance. Fortunately, Google is working on a fix for the issue. It has been marked as "FutureRelease" and will hopefully be fixed sooner rather than later.

Issue #63545