I created some apps in which I used DrawerLayout or MenuDrawer and trust me some android users don't even know about drawers.
I need a reference of how to show them that they can swipe left or right to see the options that are hidden. Obviously HomeUp button doesn't give them a clue about sliding. I hope you understand my question.
A couple of ideas:
You can either begin your first launch with the app drawer open. The user would then need to close it and would know of its existence.
Again on first launch, you could animate a slight opening and closing, sort of a "jiggle" to hint that there's something there. Can I open the drawer layout with animation programmatically?
The official design guidelines suggest opening the drawer by default the first time the app is opened by the user. This is probably the least hostile option to users that are familiar with the drawer layout, which is going to be most of your users, but it still makes it obvious that there is a drawer and how it works.
It sounds like you want a reference for your users, to explain to the users how to get to these option pages. I've personally not had an issue with the drawer layout apps I've come in contact with, but I honestly can't remember if the first one might have had a little pop-up that explained "Swipe from the left edge for options, swipe from the right edge for tools" or some such.
But that is what I'd recommend: an FYI popup/alert with a "don't show this again" checkbox, runs once when the app opens unless they've checked the box.
Related
Use case:
Enable the Google TalkBack accessibility service and navigate to an
app (e.g. Google Messenger)
In this app, assuming that you'll be presented with a list of items
to select, arbitrarily navigate to one of them using Talkback gestures (swipe right or just click once on one of them)
Rotate the screen
Expected behaviour:
The previously highlighted item should still be highlighted; the user
should be able to continue it's navigation
The Google Messenger app is a perfect example of this correct
behaviour
Messenger After rotation
My Sunshine app behaviour:
The previously highlighted item is not highlighted after Screen
Rotation
The user has to navigate again to the previously selected item
Depending on the screen, finding and having an item selected again can be a pain... not what we want to induce to our user
Sunshine After rotation
How should we implement this?
I'm thinking, as a solution, at Accessibility Events and intercepting them... but this doesn't seem to be right, doesn't seem to be "best practice" (e.g. creating a Custom View and implement the methods handling these Events)
! Note that the green highlighted list item doesn't seem to be focused (getCurrentFocused() returns null)
! Note that the list items become focused if we use D-Pad navigation, instead of TalkBack navigation (but this is another discussion...)
L.E:
I've spend a whole day on this, trying to "get the focus" of the
highlighted item, but the item is NOT focused. This is why I assume
that this feature must be tackled in some other way and I would like
to know your (!) experienced opinion before I spend another 2 days
re-creating all the used Android components (as I assume it could be done - this doesn't sound very "best practice", doesn't it ?)
This is NOT a homework, there's nothing wrong with my current code
(so, there's no code to post, unless one would like my whole project)
and, given that this is my first post, I could not attach more than 2
pictures (this is why the "before" screens are missing)
Just give me a good hint, based on experience, and I will implement it and post the finished, working code here.
It should work out of the box if you implement stable IDs in your RecyclerView.Adapter (and potentially disable the ItemAnimator on the RecyclerView (rv.setItemAnimator(null)) which you can do conditionally if TalkBack is enabled).
Here's a blog post I wrote about the item animator bug.
I ran into the same problem while working on the same project.
Hint: listView.setItemChecked(int position, boolean value);
Good luck :)
The android design guidelines specifically call out the "right caret" > as not being part of the UI. It shouldn't be used to prompt users to drill down into more information.
Unfortunately it doesn't give an alternative, only suggesting that "everything is clickable" and that android users should be used to exploring. This has diverged from reality and I need an alternative indicator for the right caret.
Has something else been standardized or developed? I ask this with the idea that there is an actual answer or burgeoning best practice, otherwise I will implement a right caret
The utility I need is to drill down to more information from a list item. Android doesn't slide menus or views from the left and right, by default, instead it pops up new activity and dialogs, so > may not make that much sense, I just need an equivalent indicator.
thanks for any insight
I've been using the SWReveal View Controller as the basis for my app in iOS, and I want to find an analog in Android. I'm hoping to keep the same drawer effect going left and right as appears in John LLuch's SWRevealViewController https://www.cocoacontrols.com/controls/swrevealviewcontroller.
I know you can use a navigation drawers controller to show the left, but that is a pop over. It's not like moving the center screen over to the right. I am also aware of there being the Fixed tabs controller, but those do not allow the center screen to be shown on top either. I am hoping somebody has mimicked a controller in android that allows you to move the three screens as if you were paging between them and still show your center screen at all times.
Please let me know if you guys know of one or know how to make the fixed tabs controller do this.
Google has a navigationDrawer that looks similar to the SWRevealController. However in all our projects we use https://github.com/adamrocker/simple-side-drawer/tree/master/SimpleSideDrawer as it seems easier to get used to it.
It is not exactly the same but you will get same results. We always make a Base Activity that all the menu activities extends in order to get the actions of the menu.
It is as having a FragmentActivity and on the onCreate method add these:
mNav = new SimpleSideDrawer(this);
mNav.setLeftBehindContentView(R.layout.menu_left);
mNav.setRightBehindContentView(R.layout.menu_right);
I hope that helps!
In my application, I want to have behavior like facebook app wherein on click of icon I'd like to shift the whole screen towards right and display some menus on the left as shown below:
Before Clicking Menu Button
After Clicking Menu Button
One way is to have a layout with those menu in black color and set its visibility to gone
But in that case, the shifting animation won't be there like it is there in facebook. So is there any way we can do this?
This UI Pattern is currently being referred to as Side Navigation and discussed in some detail here:
http://www.androiduipatterns.com/2012/06/emerging-ui-pattern-side-navigation.html
The article also links to several projects that have implemented this navigation:
https://github.com/korovyansk/android-fb-like-slideout-navigation
https://github.com/darvds/RibbonMenu
https://bitbucket.org/jfeinstein10/slidingmenu/overview
https://github.com/Gregadeaux/android-fly-in-app-navigation
It is worth reading the article for its discussion about the issues with this kind of navigation also, though.
I have not implemented it but give you an exact idea that you have to use fragment for this.
Go through this link
This is the best that I've found https://github.com/DWorkS/ActionBarToggle because it's implementation is similar to DrawerLayout from google using ActionBarToggle. Although, it has a problem with open method but I wrote to its owner and he said that he will solve.
I've activity that i want an option menu to be displayed on. But, i want the option menu to be displayed all the time the activity is displayed. I don't want my users to click (select) the menu button to display it. I want it to be there all the time. How can i do it?
thanks
Activity.openOptionsMenu().
From a design standpoint, I have to agree with Mayra. Wrong approach to begin with.
If you want options to appear at the bottom of the screen always, don't use the options menu. Just place buttons at the bottom of your screen.
However, keep in mind that this goes against the "Android way" of doing things, so make sure you understand how Android users are going to expect your application to look and work, and you have a good reason for doing something different.