防止android ProgressDialog黑屏整个屏幕

时间:2011-05-09 09:31:42

标签: android android-asynctask progressdialog

在我正在构建的android应用程序中,有两个视图,一个在另一个之下。最上面的一个是Login视图,我有一个登录表单和一个提交按钮,下面有一个WebView。

单击登录按钮时,我已实现了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();
             }
    }

2 个答案:

答案 0 :(得分:2)

那你为什么要使用ProgressDialog?只需在您的布局中添加一个进度条,并按照与对话框相同的方式使用它。默认情况下,每个对话框都会使屏幕变黑,它只是来自对话框的逻辑。

答案 1 :(得分:0)