在我构建的android应用程序中,有两个视图,一个在另一个下面。最上面的一个是Login视图,我有一个登录表单和一个提交按钮,下面有一个WebView。防止android ProgressDialog黑屏整个屏幕
当点击登录按钮并且将请求发送到服务器进行登录验证时,我已经实现了一个AsyncTask。在AsyncTask的onPreExecute()方法中,我创建了一个ProgressDialog并显示它。当来自服务器的响应和登录身份验证时,我忽略AsyncTask的onPostExecute()方法中的ProgressDialog。
问题是,在显示ProgressDialog时,整个屏幕被黑掉,并且不响应任何触摸。在我正在构建的应用程序中,即使显示ProgressDialog(并且整个屏幕没有变黑,只有登录视图变黑),在登录视图下面的WebView仍然保持对触摸的响应。
有没有办法做到这一点? (我所需要的只是一种微调器,用来通知用户一些服务器认证正在发生)。
以下是应用程序的一些代码段。
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应该处于活动状态。是对的吗 ? – m4n07 2011-05-09 10:45:22
是的。另外,如果可能的话,只有显示ProgressDialog的视图(在这种情况下为登录视图)应该变黑。其他视图应该是主动的并且对用户交互作出响应。 – vaibhav 2011-05-10 03:39:19