我制作的游戏中有很多布局,因此加载活动需要大约15秒或更长时间。有没有办法先加载一些布局,然后在一段时间后加载其余的布局,这样用户就不必在活动之间看到黑屏。
答案 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
之前,不会加载这些内容。之后,存根本身就会消失,您可以使用已加载的子视图/布局。