I did quite a lot of research, but couldn't find an answer for this one. The main quote I am starting from, is from the official android developer site:
"If you believe that more than four of your menu items can be justified as action items[...]"
This indicates me, I can safely use 4 menu buttons. At the moment, I am using 3 menu buttons on my main screen, but by popular demand, I am refactoring the mentioned main screen, which causes the need of exactly 4 menu item buttons.
My question is: are 4 standard size, only image buttons are guaranteed to be shown at ALL times, on EVERY device? So the top of the screen would look something like this in ALL cases:
_____________________________
|[I] ASD [1] [2] [3] [4]|
-----------------------------
Where [I] is the App icon, "ASD" is the label of the Activity(which is exactly 3 letters), [1], [2], [3], [4] are the menubuttons, each of them is a simple image.
Thanks in advance, cheers.
This indicates me, I can safely use 4 menu buttons
I think you are reading too much into that sentence, wherever you got it from.
are 4 standard size, only image buttons are guaranteed to be shown at ALL times, on EVERY device?
No.
First, device manufacturers can tinker with Android and may affect the behavior of the action bar on their devices. Now, the odds are that they will leave this alone, but "odds are" != "guaranteed". Even if the number of action bar items were mandated as part of compatibility testing (and AFAIK it is not), there are device manufacturers exempt from such testing because they do not license the Play Store or other Google commercial apps.
Second, on a -small screen device, four buttons might well be too many. Two might be too many, in portrait at least. I have not experimented with either ActionBarSherlock or the native API Level 11+ action bar on a -small device recently and so do not know how many action bar items it supports.
Moreover, any action bar items that do not fit into the action bar will go into the overflow (triggered via the MENU button on devices that have them or a "..." affordance in the action bar for those that don't), so the user can still access those things even if the icons are not visible for one reason or another.
Related
It probably will be an opinion based answers rather than fixed ones, but I thoughts it wouldn't be bad to ask this question and get opinions from more experienced developers.
I am implementing in my app recycler view, that each item in the recycler view should have some actions, for example
delete, reminders, spinners, change icons and some others.
Currently I implemented the delete and change icon logic with both swipe action, and contextual action mode(on click the app bar changed to "new" app bar with delete button)
I thought to continue to implement all the other actions, like reminders and spinners in the item itself but I don't know if it's a good idea.
After some research I have several approaches in my mind:
throw all the actions right in the item view itself, which mean the user see right away all the possible actions.
use popup menu(three dots on the item, and open little menu with actions)
expand the contextual action mode that will include all actions
Maybe even completely different approach and put all the actions inside the item detail screen
What do you think is a better approach?
For what it's worth, the Material Design specs (scroll down to List Controls, I can't get a link to it HOW IRONIC) recommend a primary and (optional) secondary action, with possible left and right swipe gestures (which are usually understood to be "get rid of this item" in some way, like archive and delete)
Personally I think that's a good way to go (and you don't need to follow MD but it's a good base set of principles, especially if you're not a designer or UX person yourself) - it avoids clutter, and makes it clearer to users what their main options are.
You can implement tap behaviour on the list item to bring up a dialog (fullscreen or otherwise) where you have room to add lots of other options, labels to explain them, etc. You're not limited to the size of a list item, and you can easily add to it in future if you need to, instead of being committed to trying to fit everything into a list item.
Plus there's accessibility to think about - list items are small, you don't get much space (especially on smaller devices, where the user has large fonts enabled) so where are you gonna put all that stuff? Moving some to a contextual action mode works, but there's not much space there either, and the user has to realise they need to look up there. Will it work well for blind users relying on linear navigation?
Basically you can avoid a lot of these troubles by following established patterns, where other people have done the work to make it all "just work". My own personal experience has been trying to do things in a different way, and eventually coming back to the "recommended" way and wishing I'd done that to begin with!
I have a question that is more about the user experience than a technical issue. As such, it may not belong here (let me know if it doesn't) but it's something that's bothering me.
I'm building an application to help with learning English which has a quiz section with multiple choice questions. Most of the applications like that (including my old applications developed for Android 2.x) have a layout of the screen that goes like:
Answer 1
Answer 2
Answer 3
Button "Check"
Button "Skip"
The user selects an answer and clicks the button to check it and go to the next question. If they don't want to answer the question, they press Skip. That layout is quite intuitive and easy to grasp.
Now, I would like to use the action bar for all the actions the user may take. My problem is that while having Next action is ok (with the icon of arrow pointing right), adding another action of Skip makes the action bar unclear. Is just my inability to come up with the right icon for skipping? Or is it a problem with the icons in the action bar not necessarily being easy to understand and use?
What do you think?
The ActionBar is not the place for such actions.
UI-wise, the hierarchy of of an app such as your should be (imo):
ActionBar with general actions (for example settings , share question...)
Question
Answers
Check and Skip
From top to bottom
I usually prefer to put buttons belonging to the content (such as the question) WITH the content. Then I find buttons that interact with the app as a whole to belong to the action bar. It can also be used if it interacts with multiple content items on single screen (more common on tablets
For example putting a login button in a login screen in the action bar would be kinda awkward..
Im no UI expert by any means though
Action Bar would be better for your situation.. try drawing your idea about the UI in a piece of paper, that really helps a lot about UI decisions
When an email is selected for deletion in the GMail app, the ActionBar looks like so:
There is a check mark and selection count displayed, with a subtle entry and exit animation. It appears it's an overlay that's on top of the ActionBar or replaces it.
Since I don't know the name of this widget I have trouble finding info about it.
Is it part of the API? Google Calendar has a similar overlay when creating an event, which makes me think it's possibly part of the API.
If it is, what is it called?
How is the ActionBar updated with the row selection count? (No need for code, just a brief explanation would be helpful on how to write content to the the ActionBar overlay shown in the image).
Providing a partial answer to my own question. Hope this helps someone.
It's part of the API since Level 11 and is called contextual ActionMode. The idea is to enable the user to perform some specific action without leaving the Activity or Fragment. The references docs describe it like so:
Represents a contextual mode of the user interface. Action modes can be used to provide alternative interaction modes and replace parts of the normal UI until finished.
Android Developers have a section on it, saying:
The contextual action mode is available on Android 3.0 (API level 11) and higher and is the preferred technique for displaying contextual actions when available
There is a tutorial by Lars Vogella with a screen shot showing it's the same kind of overlay as seen in the GMail app.
Here is a screen shot from Android Developers (screen shot is licensed under Apache 2.0):
First it is not the part of the API and to update the count in action bar just add a listener for check box upon check increment the count and upon un-check decrements the count so simple :)
Update
alternately you can use this custom action bar
In Android, is it possible for me to make the menu label to appear in 2 lines, instead of just 1 line? I have tried putting '\n' as the line breaker, but it does not work.
Any ideas?
Thank you.
This is part of the design spec, I believe. You just have to make it long enough. Ideally, since you cannot be certain of the Pixel Density of the device your app is running on, you want to let the OS handle it. I assume you are talking about the menu bar that is raised when the user hits their hardware button
I would like to maximize use of the screen for a Honeycomb app. Since the bottom of the screen is already stuck with "always-on" items, I'd like to add a menu button down there in that space rather than sacrificing more screen space putting an "action bar" across the top. How can I accomplish this without downgrading to API 10 or less? (As much as I don't need an action bar using up more space, I also don't need a resize button that does my app no good at all and can't be disabled except by going to a very recent API version.)
Surely one can make some kind of effective use of hundreds of pixels that currently sit dark and wasted at the bottom of a Honeycomb screen, between the back/home/thingy icons and that ever-present clock? It'll be a ridiculous waste of yet more space to create an action bar for the purpose of having a single settings button tucked in the corner.
Edit: I see others have asked somewhat similar questions but in general, how can we make use of the otherwise wasted space at the bottom by adding buttons or what have you down there? If I have to create my own menu button from scratch I will, but I get the impression that this space is unusable (which would be pretty absurd if true).
Edit 2: Apparently it's true: The "system bar" is indeed inviolable and mostly exists to present unoccupied space to the user (particularly in landscape mode). Looks like I may have to revert back to an older SDK - as long as nobody uses the zoom icon it should be fine.
Edit 3: I'm pleased to report that with API 10 the menu button is back AND the useless zoom button is GONE (using android:xlargeScreens="true" in the supports-screens appears to work in this API!)