1

I'm creating a music player on Android. It has tabs for switching between looking at a scrolling list of Songs versus a scrolling list of Artists.

If the user scrolls through the Songs (say to songs starting with the letter 'Q') and then switches to the Artists tab, and then returns to the Songs tab, should the Songs list reset (start at 'A') or preserve its previous scrolling position? More specifically, do the Android design guidelines describe an answer to this question?

I have looked through the Material guides for tabs but don't see any information there. Does an official guideline for this exist elsewhere, or is it up to me? (If it is up to me, I will gratefully appreciate any advice supplied via comments; however, the "answer" to this question is whether or not Google has a guideline on this topic.)

1

Great question!

A lot of applications seem to miss out on retaining the Activity's states since most developers do not concentrate on Android's Activity Lifecycle.

As Fadil suggests, this is a principal of good design even if not specified in the Material Design Document. There definitely needs to be an anchor where the user, when he does move to the previous Activity, it needs to save his last position onto it so that he need not move again all over.

A popular example where this is not followed is, Whatsapp.

In Whatsapp, if you happen to view someone's status in Contacts view and move back to the Contacts view, it'll take you all the way back to the top of the listview. This is not recommended and I will recommend you having an anchor point to which the user on tapping back can move to his saved state.

Using onSaveInstanceState() as Fadil suggested should be the right way to proceed.

0

We challenged ourselves to create a visual language for our users that synthesizes the CLASSIC PRINCIPLES OF GOOD DESIGN with the innovation and possibility of technology and science. This is material design.

Note the capitalized words: CLASSIC PRINCIPLES OF GOOD DESIGN.

We won't find whether or not we should maintain list state in Material guides for tabs because this isn't a visual guideline. The question is more about implementation detail.

But Material Design puts an emphasis on CLASSIC PRINCIPLES OF GOOD DESIGN. When it comes natural, then it's basically a good design.

For example, when we turned off our TV while we're watching channel 7, just to take a short break. We went to do some groceries, then came back. Then when we turned the TV again, do we naturally expect the TV to start from channel 0 or channel 7?

Another example. When Google Chrome quit unexpectedly. Then we open it once again. Unless we have set a preference, reopening the tabs is the natural thing to do. Well at least, Chrome asks us about this. And most of us, click 'yes' when it pops up.

We love to come back where we left off. This is the point.

Now, whether Google has a guideline about this. Then answer is, "Yes they do." But since this is an implementation detail, we won't find it in Material Design Guideline (Sorry for repeating myself).

But instead, we can find it here:

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

By providing onSaveInstanceState() and a specific article above, they're telling us how to implement this across our app to create natural user experience. Something that is based on CLASSIC PRINCIPLES OF GOOD DESIGN, which what Material Design is about.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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