项目中有时需要渐进式分模块加载ui,这里提供一个小工具,使用例子如下:
public static void main(String[] args) {
// write your code here
Context context = new Context();
PLoading pl = PLoading.create(context);
PLoading.Node node1 = pl.createNode().onRender(
new PLoading.RenderListener() {
@Override
public void onRender(Context context, PLoading.Node node, Runnable callWhenFinished) {
System.out.println("node 1 rendering");
// 这里显示一些view
callWhenFinished.run();
}
}
);
PLoading.Node node2 = pl.createNode().onRender(
new PLoading.RenderListener() {
@Override
public void onRender(Context context, PLoading.Node node, Runnable callWhenFinished) {
System.out.println("node 2 rendering");
// 这里显示另外一些view
callWhenFinished.run();
}
}
);
PLoading.Node node3 = pl.createNode().onRender(
new PLoading.RenderListener() {
@Override
public void onRender(Context context, PLoading.Node node, Runnable callWhenFinished) {
System.out.println("node 3 rendering");
// 这里显示另外一些view
callWhenFinished.run();
}
}
);
PLoading.Node node4 = pl.createNode().onRender(
new PLoading.RenderListener() {
@Override
public void onRender(Context context, PLoading.Node node, Runnable callWhenFinished) {
System.out.println("node 4 rendering");
// 这里显示另外一些view
callWhenFinished.run();
}
}
);
PLoading.Node node5 = pl.createNode().onRender(
new PLoading.RenderListener() {
@Override
public void onRender(Context context
, PLoading.Node node, Runnable callWhenFinished) {
System.out.println("node 5 rendering");
// 这里显示另外一些view
callWhenFinished.run();
}
}
);
node1.dependsOn(node2);
node4.dependsOn(node3);
node5.dependsOn(node1);
pl.render();
/*
output:
node 3 rendering
node 4 rendering
node 2 rendering
node 1 rendering
node 5 rendering
*/
}