У меня есть приложение с большим количеством компонентов, которые используют переходы между слайдами.
Компоненты, ScaleImageButtons и -Labels добавляются в форму напрямую через GridLayout.Существуют также события таймера, чтобы сделать сценарий более динамичным и привлекательным
Форма, конечно, прокручиваемая.
Теперь, каждый раз, когда я вызываю форму и прокручиваю ее вниз, она автоматически возвращается к первому элементу в верхней части формы, как только он становится анимированным.
Но форма должна оставаться в текущей позиции прокрутки, независимо от позиции анимированного элемента, независимо от того, виден он или нет.
Как можно заставить форму сохранять текущую позицию прокрутки, независимо от позиции текущего анимированного элемента?
formApps.setFocusScrolling(false); // does not help
Вот код:
(Этот код был отредактирован, чтобы отражать рабочее решение)
Form formApps = new Form(new GridLayout(6, 2));
ArrayList<String> listApps = classStrings.listApps;
for (int i = 0; i < listApps.size(); i++) {
Container container = new Container();
ScaleImageButton scaleImageButton = new ScaleImageButton(image);
SpanButton spanButton = new SpanButton(stringDescrip);
container.add(scaleImageButton);
UITimer uit00 = new UITimer(() -> {
UITimer uit01 = new UITimer(() -> {
container.replace(spanButton, scaleImageButton,
CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, true, slideInterval));
});
uit01.schedule(startInterval, false, formApps);
UITimer uit02 = new UITimer(() -> {
container.replace(scaleImageButton, spanButton,
CommonTransitions.createCover(CommonTransitions.SLIDE_HORIZONTAL, true, slideInterval));
});
uit02.schedule(repeatIntervalOne, false, formApps);
});
uit00.schedule(repeatIntervalOne, true, formApps);
});
form.setFocusScrolling(false);
form.add(container);
container.setScrollableY(true);
formApps.show();