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
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 am searching for a design pattern i can use so i can feature toggle UI elements.
I have a simple screen that has a horizonal list at the bottom and at the top is a photo. clicking the list updates the photo. Anyway, thats not
the issue. This screen and code already exist. I have a task to change what the list items look like.
I have a task to create a toggle such that the business can test this feature out, if they dont like it they want to revert back to the old design
by simply using a feature toggle.
I dont want to copy all the files and make duplicates with a if else condition on the files if i can avoid it, (if you think its the better way let me know)
i was thinking there is a design pattern something like a strategy pattern i could use to do this more cleanly. even chain of responsilbity could be used.
but anyway, im not sure the best way to do this, how have you all handled feature toggles on UI elements ?
You could use a toggle router, like here.
https://martinfowler.com/articles/feature-toggles.html
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.
I'm looking to implement pull to refresh on a ViewPager, and I'm curious what the best way to go about it is.
It looks like just setting a page transformation on the ViewPager wouldn't really do the trick, as you really want things like onAbsorb, which is available in EdgeEffect.
Just implementing an EdgeEffect doesn't seem like the right choice, since AFAICT, it won't move any of the existing children around.
I'd rather not use the PullToRefresh library (since it isn't being maintained), and would prefer to do mostly custom stuff -
Any advice on what approach is the most promising way to proceed?
Don't try to implement the pull to refresh by yourself, there are several good 3rd party libraries which are very easy to use.
But pull to refresh maybe not a good choice on android, a refresh action button is better.
A widely used pulltorefresh library.
It is slide to refresh that you want, as it is ViewPager. Detect a swipe (left on first element and right on last) and request for new data, when the detection is positive. For that you want onInterceptTouch over a Custom ViewPager, and a SwipeGesture detector. After that you can try other custom features that you suggest in your question.
I'm looking to implement pull to refresh on a ViewPager, and I'm
curious what the best way to go about it is.
You sited you didn't want to use the PullToRefresh library, and I get that. But I would start your research/exploration there if you are looking for similar behavior. Chris' repos have a healthy commit history, and from those you can infer some decisions regarding design choices, pitfalls, and fixes.
https://github.com/chrisbanes/Android-PullToRefresh
https://github.com/chrisbanes/ActionBar-PullToRefresh
With something like a scroll view, I imagine you can have EdgeEffects and PTR in the actionbar and not worry about moving children at all (with it working right out of the box - His google play sample app has that behavior). But I'm not sure if that is the exact effect you are looking for.
Don't implement pull to refresh on Android. I know it's not the answer, but pull to refresh is an iOS convention, not an Android one.
I am wondering about the best way to approach this problem...
I have a game, and the way the user will select which team they are on, is to slide their chosen character to the left or the right, (two teams to choose from).
Would it be best to create my own view that does this, or is there an android interface available that would work?
My initial thoughts were to use the SeekBar, as with 3 values it has the correct feel (i.e. it locks onto the left or the right with a finger swipe), but I don't want to have the progress bar underlay. I'm not sure if I can completely change the look of this either, so I think I need to try something else.