【问题标题】:Show white screen until layout is completely constructed显示白屏直到布局完全构建
【发布时间】:2013-07-16 15:52:11
【问题描述】:

我的问题是我的布局很复杂,当我的应用程序启动时,我会看到每个视图是如何添加到布局中的。我也看到了我的自定义窗口标题栏结构。我看到空的自定义窗口标题,开始时带有渐变背景,然后 1 - 2 秒后我看到完整的窗口标题和我的视图。

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

有没有简单的方法来显示白屏,直到我的活动和自定义标题栏完全构建? 主要问题是我无法启动没有标题的应用程序,然后添加自定义窗口标题。 我知道的唯一解决方案是启动画面,但对于这个小任务来说太复杂了。

【问题讨论】:

  • 您可以使用进度对话框按住屏幕直到完成加载
  • 可能你的布局太复杂了?
  • 其实布局没那么复杂。现在唯一的问题是我看到空的窗口标题,以及我的高度和背景。我实际上没有看到布局构建过程,只是窗口标题构建。
  • 也就是说activity必须在没有标题栏的情况下启动,然后我必须添加它,但是如果我最初没有设置标题,我不能再调用getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE , R.layout.title); (它失败了 - “你不能将自定义标题与其他标题功能结合起来”)

标签: android layout


【解决方案1】:

像这样使用异步任务:

private class LoadingMyView extends AsyncTask<void, void, int> {

     protected void onPreExecute ()
     {
             requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
             setContentView(R.layout.main);
             getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);
             //show whiteView
     }
     protected int doInBackground() {

         return 0;
     }

     protected void onPostExecute(int result) {
        //Hide white View
     }
}

注意:我没有测试代码,但我认为或多或少都可以

AsyncTask

【讨论】:

  • 视图无法覆盖我的自定义标题栏
  • 尝试在PreExecute上隐藏它,并在postExecute中显示,我没有尝试过,不知道它是否有效。
  • 你明白了吗?一些帮助:stackoverflow.com/questions/6872376/…
  • 不,onPre和onPost在ui线程上执行,所以在哪里设置ContentView和自定义标题没有区别
猜你喜欢
  • 2018-11-28
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
相关资源
最近更新 更多