We face an issue with how to design the UI for a decision step in an android app for a selective, professional user base:

Whilst fulfilling jobs using the app the users will come to a step where they have to book a decision into the app. A decision between "yes, I will go on with a positive choice and proceed to the next step" or "no, there are objections, I will cancel this process and confirm cancelling here and now". So both options have a different flavor as to how the app proceeds.

Traditionally we are using floating action buttons to confirm something, so we started out with such a button on the bottom right corner to allow to confirm the positive option. Works fine, obviously.

The issue is the negative option. Offering an additional floating action button in the lower left corner is an obvious approach, but we need an additional confirmation to book the calcellation. We do not want a confirmation dialog, though (soo slow, too ugly). So we thought of morphing the button... but into what? And how can you deactivate the morphed button again if you reconsider and do want to go on with the positive option?

Are there any best practice approaches for such binary decisions? Any widgets typically used for this? I thought of the android "accept incoming phone call or decline it" slider we all know, but that is so fiddly, I often experience issues using it. So I am not happy with that...

  • Development questions are on-topic on Android Enthusiasts but our sister site User Experience may be able to help you out.
    – Dan Hulme
    Dec 4, 2017 at 10:41
  • @DanHulme Thanks! Didn't know about the UX sister page.
    – arkascha
    Dec 4, 2017 at 11:30
  • Why does cancelling need a confirmation? Could you add an undo instead?
    – Dan Hulme
    Dec 4, 2017 at 11:38
  • @DanHulme An "undo" feature for this is not an option, unfortunately. This is about a business process, the negative option has financial consequences and cannot be undone. That is a legal issue, allowing that would open a huge bunch of issues and break with the rest of the app. That is why I call that the "negative option".
    – arkascha
    Dec 4, 2017 at 11:47
  • It's strange that a confirmation dialog should be ruled out. That seems like an obvious and intuitive solution.
    – Matt Obee
    Dec 4, 2017 at 11:55

1 Answer 1


it sounds like these actions (both positive and negative) have profoundly important irreversible effects. In which case you absolutely need a confirm step or undo function. Simply playing about with the shape of a button to reflect change in system state may not be enough.

Edit: only the negative step has profound effects so you need some kind of reversal function. If you don't want a confirmation step you can use an undo function like Gmail uses when you delete an email 'undo delete'

Edit 2 "This is about a business process, the negative option has financial consequences and cannot be undone" You need a confirmation step. You absolutely need a confirmation step. You need a confirmation step.

  • That is correct for the negative case, which is why we want to force some additional step. It is not the case for the positive step, since that will be followed by subsequent steps which allow back or cancel actions.
    – arkascha
    Dec 4, 2017 at 11:32
  • Indeed some form of explicit confirmation is required. There is no doubt about that. The question is how that can be done.
    – arkascha
    Dec 5, 2017 at 7:47
  • oh I see so press negative button one it has a shape and then on click it would change shape again for a final confirmation?
    – colmcq
    Dec 5, 2017 at 9:16
  • That was the original idea, indeed, but I am not happy with that... Something more explicit... This is why I ask what is typically done in such a situation. Sorry for being that fuzzy!
    – arkascha
    Dec 5, 2017 at 10:48
  • I don't know. Something like when you click the negative button it splits into a confirm and cancel state sounds like it would work. You would have to test it though vs confirmation page
    – colmcq
    Dec 5, 2017 at 10:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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