I have a view in my mobile app with two buttons, before allowing user to click on them I need to wait for some data to load, should I disable them while it happens ?

Should I show a loading indicator on them ? (seems weird to show loading indicator since user hasn't clicked on them yet)

What should I do to convey to the user that it will soon be allowed to click on those buttons

  • There's an answer to this question in SO
    – Danielillo
    Commented Aug 7, 2022 at 13:23
  • @Danielillo where ?
    – Sunshine
    Commented Aug 7, 2022 at 13:48
  • Click the link on the previous comment
    – Danielillo
    Commented Aug 7, 2022 at 14:03
  • I just don't see which answer answers my question
    – Sunshine
    Commented Aug 7, 2022 at 15:26

2 Answers 2


Three options:

  • On the button → Busy Button
  • On the screen → Busy Dialog
  • On the section → Busy Indicator

Busy button

The message is on the button. The button itself shows what is happening while being indirectly disabled:

enter image description here

More Busy Button examples on Google

Busy Dialog

If the message must block the screen:

busy alert

Image source

Busy Indicator

If the message is part of the interface while the user interacts on the page, on completion the indicator can be replaced by the button:

Busy Indicator

More about Busy Indicators


It depends on the rest of the activity/page you are creating. Is the rest of the page useless until the button has been loaded? Then you should just create a progress page in front of it.

Are there many other things the user might do? Then you'll want a placeholder component. You've seen this certainly on other webpages or apps. They display a slowly pulsing "faceless" component before displaying the actual active component.

  • the user can't do anything on this page until button is loaded but he can still read some already loaded pieces of information while the rest loads - so I thought not to put a loader on the all view
    – Sunshine
    Commented Aug 8, 2022 at 10:20

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.