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.
Pros:
- Each child item would be smaller and easier to read when consulting the form.
Cons:
- 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.
Pros:
- 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?
Cons:
- 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?