I have an activity that is used a lot, that requires a lot of input fields and it can be updated when the user wants, although it won't be very common.

In this moment, I have something like this:

The format is a master/details form and the details are within a ExpandableListView, which would have around 1-2 child items (or more) of 10 available items (or more). Each child has its own input fields (2-4) and a few are mandatory.

| Master Information |
|                    | <- Input field 1
|                    | <- Input field 2
|                    | <- Input field 3
|                    | <- Input field 4
|         [Add Child]| <- Button to add a child, which opens a listactivity to pick item
| [ChildItem]      > | <- ExpandableListView Item
|  Child Details     | <- Input fields
|  Child Details     | <- Input fields
| [ChildItem]      > |
|  Child Details     | <- Input fields
|  Child Details     | <- Input fields

In this case, I chose to open a ListActivity instead of using a Spinner because the latter fills too much space in my opinion. Also, I may have the need to insert a new item and i don't think a Spinner is a right thing for that.

However, i'm not pleased at all with the current format overall, which I think it too standard and boring, and it can fill to much space if i start to open all child items.

Here are the two scenarios I could think up:

Scenario 1

Keep the ExpandableListView, but each child, instead of having input fields, it would only show the most important information. When I add a new child or pretend to edit one, it would open a DialogFragment or something alike.


  • Each child item would be smaller and easier to read when consulting the form.


  • The DialogFragment may be too much disruptive?

Scenario 2

Remove the ExpandableListView and instead add a List/GridView. When I pressed AddChild, a bar would open at the right which would list the available items. Then I would drag and drop to the ListView the items I want. Then, a DialogFragment would open so I could fill the item's info.


  • Icons/Name (left/right or top/down) format representing the item.
  • Dynamic flow instead of just clicking.
  • Possibility of adding a gesture to open like the Charms bar in Windows 8?


  • To check the most important information, it would be required to open a DialogFragment.
  • It can have up to 10 items, so the list can be long.
  • If I limit the displayed list items, I would have to add a [...] option to open the ListActivity.
  • Child items can have long names, so it wouldn't be possible to display it all.
  • If I had the gesture, i would have to inform somehow how it works.

Which scenario would you suggest, if any? Do you have a better pattern?

  • A wireframe or other mockup of the options would help outsiders to the project greatly in understanding your problem / choices.
    – kontur
    Feb 14, 2013 at 8:19
  • 1
    What is confusing me is all the Android specific lingo. Could you clarify with some wireframes? Apr 9, 2013 at 17:20

1 Answer 1


Taking a look to this page, (www.androidpatterns.com), Expandable list or Data drill down could be you best options to show data. Then, looking in depth the goods and the bads of both, I would use the Data drill down because it seems that, if you use the Expandable list you will have too much information on one screen (with scrolling) and you will have a lot of information not immediately visible. (You can have up to 10 child items with up to 4 child details... it is too much information to one screen).

Anyway, in this page you will find a lot of patters you can use (for example yo can use Mode selector to add a new child).

I hope this will help you!

  • Thanks, I'm aware of the site. Still, I don't think it fits in the whole scenario. As @kontur asked, I will prepare a few mockups to present my intention. Mar 19, 2013 at 14:34

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.