What is the best way to go about designing an Android application that features quite a bit of formulas and conversions? I was thinking that multiple Activities with ListViews sort of like a tree with the leaves being the actual calculations. However, after reading Android design principles it's better to avoid a pure navigational structure and try to reduce the deepness of the app.

For example:

Main Menu
  Distance - Speed - Time
    Calculate air speed
    Calculate distance traveled

So by the 3rd or 4th screen we've reached the actual individual calculator. Does this make sense? And if it does, is there a better way of designing this (maybe using action bars or tabs)?

However, on StackOverflow it was mentioned using ExpandableListView. I'm necessarily sure this would be the best way.

2 Answers 2

  • Settings Design Pattern


    Consider the Settings design pattern, where your various items are grouped into a categorized list. In this example, the second screen would be the converter/calculator itself instead of a list of preferences.

    See also: Settings API guide with sample code

  • Action Bar Navigation

    Action Bar

    A Spinner control in the Action Bar (#2 in the above image) is another option, although the Action Bar design pattern says this is typically reserved for switching between views of the same data set (for example: calendar events viewed by day, week, or month) or data sets of the same type (such as content for two different accounts).

    See also: Action Bar API guide with sample code

  • Action Bar Tabs

    I would advice against this pattern in your case. You have too many converters to show tabs for each at once. Using fixed tabs to show the main categories ("Conversions") doesn't seem helpful, nor does putting all converters into a long list of scrolling tabs (you lose the categorization and it has the same problem where users can't see all the options at once to know what's available).


From what I understand with the example you have given here, the user can perform action on 3rd level and 1st and 2nd level is used to categorize them.

Being in such a scenario, I would have have used a sliding menu or drawer just like Facebook or YouTube to access these 3rd level menu titles. In this sliding menu, I can still use headers to segregate them based on category but it will also make it easily accessible as the menu is persistent and always available with just a swipe of finger.

From the Action Bar design pattern:

A drawer is a slide-out menu that allows users to switch between views of your app. It can be opened by touching the action bar's app icon (decorated with the Up caret.) Additionally, a drawer can be revealed by an edge swipe from the left of the screen, and dismissed by swiping from the right edge of the drawer.


  • 1
    Sliding Menu at YouTUbe youtube.com/watch?v=dfR9kR55E8I
    – FrankL
    Commented Jul 17, 2012 at 7:05
  • Thanks Frank for the example video. This is what I was referring to.
    – ajayashish
    Commented Jul 17, 2012 at 7:21
  • Would it also be a good idea to use tabs at the top to indicate which menu you're on? Otherwise, how does the user know there are other menus unless they just happen to swipe?
    – keelerjr12
    Commented Jul 17, 2012 at 12:33
  • @keelerjr12 I edited the post with a reference to the design guide. The drawer also should be accessible from the Action Bar's home icon, which would have an "Up" caret for indication.
    – quietmint
    Commented Sep 15, 2012 at 16:22

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.