Imagine an app screen used to fill out a form and then either Ok, or Cancel - an activity that on a desktop application might be a dialog box. The keyboard will be displayed, so we have limited screen space on a phone, and to ensure everything fits on all devices the screen content will be wrapped in a ScrollView, so it'll scroll if the screen is small.

In this app I use an ActionBar on all activities, to provide an easy and consistent way to move around the app.

Options:

  1. Put Ok/Cancel at the top of the activity, under the ActionBar. If the user scrolls down, the buttons scroll off the top. I don't like this much as it means if the user goes down to enter the form data, they have to scroll BACK UP to get to the buttons. But what's good is the buttons are clearly visible right from the start - the user knows their options, though things appear in the wrong order (you need to fill the form out before sending it)

  2. Have the Ok/Cancel buttons at the bottom of the form. The problem with this is they are not visible when the screen opens. New users may get confused and wonder what to do. I'm requiring they do some scrolling to even find the most important buttons on the screen. But the advantage is that the form to be filled is shows first, which is the first step they need to take, so in that respect it's logical.

  3. Move the Ok/Cancel buttons into the ActionBar, so they are always visible. If I do this they will be much smaller. The approach would be much like the iPhone. So I'd be using the ActionBar to provide context-sensitive options for users to work with.

  4. Remove the ActionBar from activities like this, and simply have Ok/Cancel buttons to select how to exit, and retain the ActionBar for the main screens. Though doing this may work on phones, it won't work so well on tablets.

link|improve this question
feedback

1 Answer

up vote 2 down vote accepted

Most input forms on Android have the cancel and confirmation buttons at the bottom of the dialog. This is natural based on the flow of information: The user will work their way down the various input fields and at the end of the fields will either commit or cancel their work. The action bar is the new shiny control of Android but you need to be judicious with its use. There are no instances of Google using the action bar in either their OS or applications for confirm/cancel. Note that confirm/cancel is different from other types of actions like sending an email versus trashing a draft.

You are worried about hiding the buttons in option #2: "Have the Ok/Cancel buttons at the bottom of the form." Instead of having the buttons as part of the scroll view, you could pin the buttons to the bottom of the screen. This informs the user of all the major UI elements and if there are optional form elements, allows the user to submit the form without having to scroll through all options.

Additionally, most fully-designed Android applications will have seperate UI for phones versus tablets. You should take advantage of the larger screen real estate offered on tablets and layout the forms differently. You'll still wants confirm/cancel buttons near the bottom of the form but you can likely layout the form without the need for the user to scroll to see all fields.

link|improve this answer
If the buttons do not scroll, then this layout probably won't work on a very small screen device, as the mandatory items will take up all the space. Even if there is a small letterbox space for the scrolling content, it will be too small. I'm not keen to allow the ActionBar to scroll off the screen. Of course once Ice Cream Sandwich arrived and we have Honeycomb UI on phones, the ActionBar may become appropriate for context-sensitive options. I'm not convinced any of the options I've laid out above are that great. – Ollie C Aug 27 '11 at 15:14
feedback

Your Answer

 
or
required, but never shown

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