When Android first came out, there was no way of quickly skipping down a really long list. For instance, if you had a really large amount of songs on your phone, you would have to tediously fling your finger over and over to scroll to the ‘T’s to listen to The Toasters. Later versions of Android resolved this issue by providing a UI control that allows you to jump.

How List Jumping Currently Works

List Jump Figure 1

In order jump further down the list, you must first start by scrolling. This is done by placing the finger on the list, and moving it up the screen. Logically this feels backwards, moving your finger up to scroll down, but it makes for a pleasurable experience because you appear to be moving a physical object. When you start scrolling, a little tab pops up somewhere on the right side of the list based on how far down you’ve scrolled. To skip to list items that start say, with the letter ‘G,’ stop scrolling and place your finger on the jump tab and start dragging down. As you do, a letter will appear in the center of the screen, defining what letter items in the list currently begin with. When you have reached your letter, you let go, and can go back to scrolling normally.

Why The Current System Is Flawed

Having used the current list jump method for some time now, I have noticed several flaws with the solution’s interaction.

  1. There is no way of initiating a jump without first needlessly scrolling.
  2. There is a half second pause in your brain every time you use it, because it changes the interaction from “moving finder up,” to “moving finger down” in order to scroll.
  3. It is wildly inaccurate. There is no standard iteration of distance to find the next letter. Instead, it bases the distance you need to scroll on the number of items in that list that start with a specific letter. So, if you have a long list of ‘G’s, a short list of ‘H’s, and a long list of ‘I’s, it will be incredibly difficult to land on the ‘H.’
  4. It is time sensitive. The UI control for list jumping is not always on the screen. It comes and goes based on the amount you have scrolled, and how long you have stopped. The control may vanish before you can find it with your finger.

One Way To Fix The Experience

List Jump Figure 2

In order to list jump with this interaction, a user would first pinch the list. This is the same interaction used for zooming out on images and maps. Next, a new view will appear, overlaid on the list, showing all the different letters of the alphabet. The user then selects a letter they wish to jump to, the view will vanish, and the list will jump to the first item that starts with the selected letter. At this point, normal scrolling can resume.

Why This Fix May Be Better

Only usability testing will define which implementation is better, but their are indicators of how this may be an improved experience.

  1. It makes use of a widely used gesture (zoom) which maps well with the interaction.
  2. It does not attempt to change the already established interaction of scrolling.
  3. It is potentially more accurate and affords kinesthesia. The consistent position and spacing of each letter allows a user to master the interaction.
  4. It is more obvious that the list does not contain items that start with certain letters.
  5. It can be initiated without having to borrow from another interaction.
  6. Fitt’s Law: The hit area for this gesture enormous in comparison to the current method, which will potentially make it a more reliable interaction.

Demonstration

How You Can Help Make This A Reality

If you would like to see this interaction come to your Android powered phone, let Google know! Find my feature request ticket, and ask Google to add this feature.

Try It Out Yourself

As requested by commenter Zach, I’m providing a download link to the AIR mock-up APK (requires the Adobe AIR Pre-release). Pinch the list to get the alphabet list, ‘J’ is the only letter you can tap, tap the list again to reset the list to ‘A.’

Download list_jump_1.0.0.apk