基于拓扑排序的渐进加载小框架

项目中有时需要渐进式分模块加载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 

Kup Lasix bez recepty

, 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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据