在OnCreateView或OnCreate中返回视图后,是否可以调用将更改ui的方法?我想显示一个进度视图并隐藏一个列表视图,直到某个内容完成从另一个活动的异步任务中加载。但是每当我用这段代码打开片段时:
boolean doneOnce = false;
do {
if(!doneOnce) {
showProg(true);
doneOnce = true;
}
}while (Values.courses == null);
通过导航菜单冻结然后弹出,因为在OnCreateView返回膨胀的视图之前调用它。任何解决方案?
答案 0 :(得分:0)
这样的循环会阻止UI。如何使用Runnable,您的任务后跟所需的可见性更改?类似的东西:
class MyRunnable implements Runnable {
@Override
public void run() {
//perform your task here
something.setVisibility(View.VISIBLE);
}
}
通过以下方式发布此可运行文件:
private android.os.Handler mHandler= new android.os.Handler();
mHandler.post(new MyRunnable());
编辑:也许您仍然可以使用runnable,但是可以使用主要活动。
boolean doneOnce = false;
class MyRunnable implements Runnable {
@Override
public void run() {
if(!doneOnce) {
showProg(true);
doneOnce = true;
}
if (Values.courses == null) {
mHandler.postdelayed(this, 100); //or mHandler.post(this);
}
}
}