【问题标题】:Manually trigger Pull to refresh on Container在 Container 上手动触发 Pull 刷新
【发布时间】:2018-12-13 10:57:21
【问题描述】:

如果我想在表单加载后手动触发对 Codename One 中 Container 的 Pull to Refresh。如果有人有任何想法,请告知。

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    这很简单,诀窍是使用showListener。假设这是起始代码(取自 Codename One 开发人员指南,section "Pull to refresh"):

        Form hi = new Form("Pull To Refresh", BoxLayout.y());
        hi.getContentPane().addPullToRefresh(() -> {
            hi.add("Pulled at " + L10NManager.getInstance().formatDateTimeShort(new Date()));
        });
        hi.show();
    

    要在表单加载后调用“Pull to Refresh”监听器,您可以这样做:

        Form hi = new Form("Pull To Refresh", BoxLayout.y());
        Runnable myRunnable = () -> {
            hi.add("Pulled at " + L10NManager.getInstance().formatDateTimeShort(new Date()));
        };
        hi.getContentPane().addPullToRefresh(() -> {
            myRunnable.run();
        });
        hi.addShowListener(l -> {
            myRunnable.run();
        });
        hi.show();
    

    【讨论】:

    • 仅供参考,如果您使用的是InfiniteContainer,您可以使用refresh()
    • 谢。 refresh() 方法不会触发容器上的手动刷新。我想在加载表单后刷新容器意味着我应该手动触发向下滑动(刷新)操作而不向下滑动容器。请指教。谢谢
    • pullToRefresh 只是调用一个方法,您可以手动调用该方法,如 @francesco-galgani 所示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2017-10-03
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多