在我構建的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