【发布时间】:2014-11-29 05:59:48
【问题描述】:
有,不确定的progressBar 旋转直到ListView 内容准备好显示。 progressBar 和 listView 都是同一 Fragment 的一部分。
所以我将这个progressBar 编码为可见,并从获取内容的AsyncTask 中消失。
mProgressBar = (ProgressBar) view.findViewById(R.id.progressbar);
mProgressBar.getIndeterminateDrawable()
.setColorFilter(getResources().getColor(R.color.pink), PorterDuff.Mode.MULTIPLY);
new MyAsyncTask().execute();
//then in asynctask
private class MyAsyncTask extends AsyncTask<Void, Integer, MyAdapter> {
@Override
protected void onPreExecute() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected MyAdapter doInBackground(Void... params) {
//do the stuff and return loaded adapter
return adapter;
}
@Override
protected void onPostExecute(MyAdapter adapter) {
mProgressBar.setVisibility(View.GONE);
}
}
但是progressBar 被冻结并且不旋转?!
我尝试从onPreExecute 实例化progressBar,但外部progressBar 不接受我在AsyncTask 中设置的参数。我可以看到,因为它以默认颜色而不是自定义颜色显示。
那么我该如何控制这个progressBar?现在我只需要在内容开始加载时显示它,并在它准备好显示时隐藏它。
注意:我不需要在每个项目中添加progressBar,但我需要按照我描述的方式。
【问题讨论】:
标签: android android-listview android-asynctask android-progressbar