禁用后启用标签滑动(代号一)

Enable Tabs swipe after disabling it (on Codename One)

此问题仅针对代号一。

我需要多次显示同一个表单实例。我需要在第一个节目(以及第二个、第三个等)中禁用选项卡的滑动,但在最后一个节目中应该启用滑动。

这种情况就像下面的测试用例:

    Form hi = new Form("Hi World", BoxLayout.y());
    Tabs tabs = new Tabs();
    tabs.addTab("Tab1", new Label("Tab1"));
    tabs.addTab("Tab2", new Label("Tab2"));
    tabs.addTab("Tab3", new Label("Tab3"));
    hi.add(tabs);
    tabs.setSwipeActivated(false);
    hi.show();
    hi.addShowListener(l -> {
        UITimer.timer(1000, false, hi, () -> {
            hi.show();
            tabs.setSwipeActivated(true);
        });
    });

我插入 UITimer 只是为了记住同一个表单实例不会立即显示多次,但有一个时间取决于用户交互。

问题是像这个测试用例这样的代码不起作用,因为最后 Tabs 的滑动被禁用了。我测试了几种解决方法,但其中 none 令人满意。

假设这不会动态更改,因此听众未正确注册。我为此编写了一个修复程序并提交了它。明天应该是:https://github.com/codenameone/CodenameOne/commit/e2c7f50d97dd37633ac4e946fe41e6db85d3412d