LWUIT проблема с прокруткой - PullRequest
5 голосов
/ 28 апреля 2011

Мне нужно показать единственный компонент в форме - HTMLComponent. Достигнув нижней части формы / компонента, в то время как вертикальная полоса прокрутки переместится обратно в верхнюю часть формы. Мне нужно это предотвратить.

Я пытался включить / выключить прокрутку в форме и HTMLComponent, но в любом случае, если есть полоса прокрутки - она ​​вернется к вершине снизу. Также я попробовал макеты рамок и блоков и дополнительный контейнер для HTMLComponent - бесполезно.

Есть идеи, как предотвратить такую ​​проблему с прокруткой?

Ответы [ 8 ]

1 голос
/ 06 ноября 2011

Попробуйте это (у меня работает - LWUIT 1.5):

htmlComponent.getComponentForm().setCyclicFocus(false);

Если вы получили NullPointerException, позвоните после добавления в форму HtmlComponent.

1 голос
/ 19 мая 2011

Вы должны придерживаться макета границы и поместить компонент HTML в центр для этого конкретного случая использования.Вы можете отключить прокрутку формы, поскольку компонент HTML по умолчанию прокручиваем:

form.setScrollable(false);
1 голос
/ 29 апреля 2011

Если вы хотите избавиться от нижнего / верхнего прыжкового свитка, вы можете использовать

form.setCyclicFocus(false)

0 голосов
/ 10 декабря 2012

В LWUITImplementation у нас есть функция getDragPathTime ().Это javaDoc об этой функции:

 /**
 * Indicates what drag points are valid for the drag speed calculation.
 * Points that are older then the current time - the path time are ignored
 * 
 * @return the relevance time per point
 */

У меня также была проблема, особенно в устройствах с ОС S-60 Nokia.Списки перепрыгивали с низа наверх.Я решил эту проблему, изменив возвращаемое значение.Я изменяю значение до 600 (с 200).это происходит для уменьшения выборки и предотвращения «скачка».

0 голосов
/ 24 сентября 2012

Вы можете попробовать сделать фокусировку всего компонента, что может помочь в правильной прокрутке. Наряду с этим вы должны добавить свой HTML-компонент в Boderlayout.center формы и сделать прокрутку формы истинной и циклический фокус ложным.

0 голосов
/ 08 октября 2011

form.serScrollable(false) или form.setCyclicFocus(false) не работает для меня. У меня есть форма и только один HTMLComponent в ней.
Проблема в самом HTMLComponent, и отключение фокуса формы не повлияет на него.

0 голосов
/ 01 июня 2011

... или вы можете вставить этот код в свой класс Form

public void keyPressed(int keyCode) {
    int tecla = Display.getInstance().getGameAction(keyCode);

    if(tecla == 8){
        //if hit ENTER or principal key in mobile keyboard
    }else if(tecla == 6){//down key
        if(this.list_component_name.getSelectedIndex() < this.list_component_name.size() - 1)
            this.list_component_name.setSelectedIndex(this.lista_bodegas.getSelectedIndex() + 1);
    }else if(tecla == 1){//up key
        if(this.list_component_name.getSelectedIndex() > 0)
            this.list_component_name.setSelectedIndex(this.list_component_name.getSelectedIndex() - 1);
    }
}

Это также работает для меня

0 голосов
/ 28 апреля 2011

HTMLComponent сам по себе прокручивается

для предотвращения прокрутки

setScrollable(false);

для горизонтальной прокрутки

setScrollableX(false);

надеюсь, что это решит вашу проблему

...