2011-05-09 152 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添加到您的佈局中,並按照與對話框相同的方式使用它。每個對話框默認都會遮擋屏幕,它只是來自對話框的邏輯。