6

If I want to manually trigger Pull to Refresh on Container in Codename One after the load of the form. Please advise if anyone have any idea.

Vinod
  • 1,143
  • 7
  • 9

1 Answers1

3

It's easy, the trick is the use of the showListener. Suppose that this is the starting code (taken from the Codename One Developer Guide, 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();

To invoke the "Pull to Refresh" listener after the load of the Form, you can do so:

    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();
Francesco Galgani
  • 6,137
  • 3
  • 20
  • 23
  • FYI if you are using `InfiniteContainer` you can use `refresh()`. – Shai Almog Jul 06 '18 at 03:57
  • Shai. refresh() method doesn't trigger manual refresh on the container. I want to refresh the container after the load of the form means I should trigger swipe down (refresh) action manually without swiping down the container. Please advise. Thanks – Vinod Aug 20 '18 at 22:19
  • `pullToRefresh` just invokes a method you can just invoke that method manually as shown by by @francesco-galgani – Shai Almog Sep 05 '18 at 03:25