2011-05-09 143 views
0

在我构建的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(); 
      } 
    } 
+0

您希望显示ProgressDialog,并在显示时显示背景/ UI应该处于活动状态。是对的吗 ? – m4n07 2011-05-09 10:45:22

+0

是的。另外,如果可能的话,只有显示ProgressDialog的视图(在这种情况下为登录视图)应该变黑。其他视图应该是主动的并且对用户交互作出响应。 – vaibhav 2011-05-10 03:39:19

回答

2

那你为什么要用ProgressDialog?只需将一个Progress Bar添加到您的布局中,并按照与对话框相同的方式使用它。每个对话框默认都会遮挡屏幕,它只是来自对话框的逻辑。