0

我有一个 Activity,它使用 ViewSwitcher 来显示加载屏幕,然后是我的主视图。加载屏幕显示正常,但主视图不可见。它在那里是因为我的应用程序启动后我无法触摸屏幕上的任何东西,但它是不可见的。我需要导航到主屏幕(系统栏仍处于活动状态),然后重新启动应用程序,它只是将其带到前台(使其可见)。

这只发生在安装后第一次打开时。我尝试手动设置可见性并使用 bringToFront() 将其置于前台,但在我再次点击应用程序图标之前它一直不可见。

这是我的代码:我开始加载 AsyncTask 并在onPreExecute中执行此操作:

viewSwitcher = new ViewSwitcher(MainActivity.this);  
viewSwitcher.addView(ViewSwitcher.inflate(MainActivity.this, R.layout.splashscreen, null));  
setContentView(viewSwitcher);
mv = new MainView(MainActivity.this);

然后在doInBackground中,我完成了所有繁重的工作,在onPostExecute中,我像这样切换视图:

viewSwitcher.addView(mv);
viewSwitcher.showNext();
//I have tried all this:
mv.setVisibility(View.VISIBLE);
viewSwitcher.setVisibility(View.VISIBLE);
viewSwitcher.bringToFront();
mv.bringToFront();

我也尝试在没有内容切换器的情况下正常设置内容视图,但无济于事。就像 UI 在异步任务之后没有失效一样。我不知道为什么这只会在安装后发生一次并且每隔一段时间都可以正常工作。

4

1 回答 1

0

好的,想通了。问题是在加载和访问 asyncTask 以更新进度时出错。该错误已得到处理,因此加载继续,但这不知何故使视图不可见。我将 myasyncTask.setProgress() 放在 runOnUiThread 和 viola 中,视图加载并按预期显示。

于 2013-02-13T00:36:58.857 回答