I'm working in an application where we display a photo gallery in horizontal direction. We have 2 options for the user to view the photos:

  1. Scrollable list view, where the user can scroll multiple photos per scroll.
  2. View pager, where the user browses the photos one by one, regardless how fast was his flicking.

Which one gives a better user experience?

  • 4
    I don't think scrollable listView is ever a good option for viewing photos. Scrollable gridView, on the other hand is a good way, incorporated with a viewPager.
    – VipulKumar
    Mar 19, 2015 at 12:32
  • Unless the photos are in a timeline, scrollable view is not preferred. it's better to show each photo on its own and user needs to slide (right to left) to view the next photo. Pull down the photo to close the full screen view.
    – Ades
    Jul 7, 2015 at 4:31

3 Answers 3


It can be a combination of both!

In the normal view you could use a Scrollable ListView with which the User could browse Photos horizontally. This will allow him to both, slow down and quicken the process of scrolling through multiple photos until he reaches a batch of desired photos.

Let's say the user now clicks on a photo after reaching his batch of photos. Now, you could have the immersive mode on Android and now implement the ViewPager to scroll through the photos one by one regardless of the impact of the swipe.

This solves 2 things.

  1. The slow paced scrolling through the photos if you'd have only used a ViewPager.

  2. Going Immersive when the User knows he's nearby to a particular photo and using the ViewPager to let him experience the Album and recollect memories.


Ask your users :) It's hard to give advice or any facts without knowing the context of your application. Depending on their mental model, they may want to flick through as fast as possible (a specific picture is their target) or just casually flick through (more like entertainment). If you can't do user testing: Measure their flicking speed and "read" the data for an improvement in the next release.

Even tough my answer wasn't very specific, I hope it can help with your project.

  • First of all, thanks for the answer. But most answers on ux.stackexchange can be "Ask your users"!. In my case, they're browsing through something like an event album. Dec 8, 2014 at 16:15
  • thats the problem with user experience... it's always about user-testing. but in your case it seams like you should go with option 2. I do not have any research to prove it, but all mayor operating systems (ios, android) will only flick 1 picture at a time, regardless of how fast you flick.
    – Pascal
    Dec 8, 2014 at 20:36

I will not limit my thoughts to Android implementation specifically, but keep them more general -

  • As @Pascal rightly said, its context driven - but considering this is for something like an event album, we could try understanding the user's mental model. Consider, user has seen 6 photos (whether expanded or not) in the first opening batch. Then it could make sense,

a) for a flick to show the next 5 images (7-11), with the image 6th, as the first one in next batch. This would give context that these are the next few images in line, and also since one would have seen images (1-6), there would be less duplication and better use of user effort.

b) for a tap on right/left arrows (if there are) - it could make sense to show the next image in line, and shift the images by +1/-1.

Flick is mapped to be an action where user intent is more toward seeing next few images in line quickly (~skimming), and tap is associated with an intent of user showing more involvement/care.

This is just a suggestion - but one, which I think, responds to user action, and mental model/action - rather than being a fixed pattern. For an expanded view where one image is seen, both flick/tap could just move to next image in line.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.