延迟加载布局

时间:2012-02-13 13:38:10

标签: android layout lazy-loading

我制作的游戏中有很多布局,因此加载活动需要大约15秒或更长时间。有没有办法先加载一些布局,然后在一段时间后加载其余的布局,这样用户就不必在活动之间看到黑屏。

4 个答案:

答案 0 :(得分:4)

使用线程。在线程外部加载一些布局并在线程中加载剩余的线程。 线程的示例代码。

 new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //write your code here...
        }
    }, delay_time);

答案 1 :(得分:1)

如果可以摆脱多少布局,你可以。如果你想毫不拖延地显示活动,你可以尝试硬编码一些布局,并在延迟的不同线程中添加它们。

答案 2 :(得分:1)

嗯,延迟初始化通常可以像这样存档

private View v;
...
v.getSomethingUsefullFromView();    

public int getSomethingUsefullFromView () {
if(v == null)
    v = new View()
    jadajada

return somevalue;
}

这里的诀窍是拥有if(v == null) v = new View()代码段

这样,您只需在实际需要时初始化View v。

答案 3 :(得分:0)

另一种惰性加载布局的好方法是按照https://developer.android.com/training/improving-layouts/loading-ondemand

中的描述在布局中使用ViewStub个条目

基本上,您在布局中定义了一个ViewStub条目,该条目引用另一个布局文件,您在其中放置了要加载的内容。在将存根的可见性设置为VISIBLE之前,不会加载这些内容。之后,存根本身就会消失,您可以使用已加载的子视图/布局。