【发布时间】:2011-05-09 09:31:42
【问题描述】:
在我正在构建的 android 应用程序中,有两个视图,一个在另一个之下。最上面的是一个登录视图,其中有一个登录表单和一个提交按钮,下面是一个 WebView。
当点击登录按钮并将请求发送到服务器进行登录验证时,我已经实现了一个 AsyncTask。在 AsyncTask 的 onPreExecute() 方法中,我创建了一个 ProgressDialog 并显示它。当有来自服务器的响应并且登录通过身份验证时,我在 AsyncTask 的 onPostExecute() 方法中关闭 ProgressDialog。
问题是在显示ProgressDialog期间,整个屏幕变黑并且对任何触摸都没有反应。在我正在构建的应用程序中,希望登录视图下方的 WebView 即使在显示 ProgressDialog 时仍能响应触摸(并且整个屏幕不会变黑,只有登录视图变黑了)。
有没有办法做到这一点? (我只需要一个微调器类型的对象来通知用户正在进行某些服务器身份验证)。
以下是应用程序中的一些代码。
private class LoginProgressAsyncTask extends AsyncTask<Void, Void, String>{
private ProgressDialog dialog ;
protected void onPreExecute() {
dialog = ProgressDialog.show(context , null, "Verifying Login. Please wait...") ;
}
protected void onPostExecute(String result) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
【问题讨论】:
-
您希望显示 ProgressDialog,并且当它显示时,背景/UI 应该处于活动状态。是这样吗?
-
是的。此外,如果可能,那么只有显示 ProgressDialog 的视图(在本例中为登录视图)应该被涂黑。其他视图应处于活动状态并响应用户交互。
标签: android android-asynctask progressdialog