Android:如何在进度条处于活动状态时禁用控件

2024-06-09

我“像往常一样”在操作栏中显示无限进度条:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
...
setProgressBarIndeterminateVisibility(true);
...
setProgressBarIndeterminateVisibility(false);

真正的工作是在后台线程(AsyncTask)中完成的

问题是:UI 上的所有控件均已启用,因此用户可以在长期进程完成之前继续修改底层数据。

简单地禁用所有控件是不可能的,因为禁用 EditText 时,Android 也会自动关闭键盘。

有什么想法如何防止用户在后台工作期间输入?

Thanks,

Chris


您可以做的是调出一个不可见的对话框并防止其被取消。它将显示其下方的所有内容,但禁用所有底层用户交互。然后,一旦你完成了你的事情,你就可以将其打发掉并继续你的生活:

Dialog mOverlayDialog = new Dialog(mContext, android.R.style.Theme_Panel); //display an invisible overlay dialog to prevent user interaction and pressing back
mOverlayDialog.setCancelable(false);
mOverlayDialog.show();  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何在进度条处于活动状态时禁用控件 的相关文章

随机推荐