【问题标题】:Unable to hide ProgressBar on PostExecute无法在 PostExecute 上隐藏 ProgressBar
【发布时间】:2018-07-17 18:32:48
【问题描述】:

Asynctask 加载数据后,我试图隐藏ProgressBar,但即使我指定View.GONE,进度条仍然存在。 我浏览了不同的链接,但无法获得理想的结果

我在我的活动中在onCreate 上指定这个我指定以下代码:

    layout =(RelativeLayout) findViewById(R.id.displayLayout);
    progressBar = new ProgressBar(DisplayActivity.this,null,android.R.attr.progressBarStyleLarge);
    params = new RelativeLayout.LayoutParams(100,100);
    params.addRule(RelativeLayout.CENTER_IN_PARENT);

在我的 Asynctask onPreExecute 事件中,我指定了以下代码:

    layout.addView(progressBar,params);
    progressBar.setVisibility(View.VISIBLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

OnPostExecute我指定以下代码:

            progressBar.setVisibility(View.GONE);
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

我几乎尝试了以下链接中的所有内容:

Android - ProgressBar setVisibility to GONE not working

Android, setVisbility to gone not working in RelativeLayout

【问题讨论】:

  • 我测试了你的代码工作正常,你可以发布你的AsyncTask class

标签: android android-asynctask progress-bar


【解决方案1】:

我希望它对你有用。尝试添加进度条 onCreate 方法

layout.addView(progressBar,params); progressBar.setVisibility(View.GONE); 然后 onPreExecute 只是 setVisibility

progressBar.setVisibility(View.VISIBLE); 而 onPostExecute 只是隐藏 ProgressBar

progressBar.setVisibility(View.GONE);

【讨论】:

  • 成功了,谢谢!将这段代码放在 onCreate 方法上完成了工作 layout.addView(progressBar,params); progressBar.setVisibility(View.GONE);
【解决方案2】:

尝试在 UI 线程中执行此语句

runOnUiThread (new Thread(new Runnable() { 
     public void run() {
         progressBar.setVisibility(View.GONE);
     }
 }));

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2015-11-26
    • 2020-06-18
    • 2017-05-31
    • 1970-01-01
    相关资源
    最近更新 更多