布局的延迟加载

问题描述 投票:0回答:4

我制作了一个具有很多布局的游戏,因此花费了将近15秒或更长时间来加载活动。有没有一种方法可以先加载一些布局,然后在一段时间后加载其余的布局,这样用户就不必在活动之间看到黑屏。

android layout lazy-loading
4个回答
4
投票

为此使用线程。在线程外加载一些布局,并在线程中加载其余线程。线程的示例代码。

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

1
投票

[如果有可能,请消除多少布局。如果要立即显示活动,则可以尝试对某些布局进行硬编码,并延迟将它们添加到其他线程中。


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。


0
投票

懒惰加载布局的另一种不错的方法是使用布局中的ViewStub条目,如https://developer.android.com/training/improving-layouts/loading-ondemand所述,>

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

© www.soinside.com 2019 - 2024. All rights reserved.