项目中有时需要渐进式分模块加载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 */ }
项目地址: https://github.com/legendmohe/ProgressiveLoading