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

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

原文 

http://legendmohe.net/2019/03/15/基于拓扑排序的渐进加载小框架/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 基于拓扑排序的渐进加载小框架

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址