以编程方式 select Codename One Tabs 对象的一个​​选项卡

Programmatically select a tab of a Codename One Tabs object

要以编程方式select Codename One Tabs 对象的一个​​选项卡,以下代码就足够了:

tabs.setSelectedIndex(tabToSelect, true);

问题是此代码 select 是想要的选项卡,但它不会水平滚动选项卡按钮容器以使选项卡名称可见 (如果它不可见,因为有许多标签)。请注意,我使用的是主题常量 tabsGridBool: false;.

因为这个问题,我尝试这样解决:

tabs.setSelectedIndex(tabToSelect, true);
tabs.scrollComponentToVisible(tabs.getTabsContainer().getComponentAt(tabToSelect));

但它不起作用。 select 选项卡及其按钮的正确方法是什么?谢谢

我试过了,对我有用,这可能是操作顺序:

Form hi = new Form("Tabs", new BorderLayout());
Tabs t = new Tabs();
hi.add(CENTER, t);

for(int iter = 1 ; iter < 20 ; iter++) {
    t.addTab("Tab " + iter, FontImage.MATERIAL_ACCESS_ALARM, 4, new Label("Tab " + iter));
}

Button test = new Button("Test");
test.addActionListener(e -> {
    t.getTabsContainer().getComponentAt(18).requestFocus();
    t.setSelectedIndex(18, true);
});
hi.add(SOUTH, test);
hi.show();