LWUIT 滚动跳跃问题

Posted

技术标签:

【中文标题】LWUIT 滚动跳跃问题【英文标题】:LWUIT scroll jumping issue 【发布时间】:2011-04-28 12:01:23 【问题描述】:

我需要在表单上显示唯一的组件 - htmlComponent。在垂直滚动滚动条跳回表单顶部时到达表单/组件的底部。我需要防止这种情况发生。

我尝试打开/关闭表单和HTMLComponent 的滚动,但无论如何如果有滚动条 - 它会从底部返回顶部。我还尝试了 HTMLComponent 的边框和框布局以及其他容器 - 没用。

任何想法如何防止此类滚动问题?

【问题讨论】:

【参考方案1】:

试试这个(它适用于我 - LWUIT 1.5):

htmlComponent.getComponentForm().setCyclicFocus(false);

如果您收到NullPointerException,请在将HtmlComponent 添加到表单后调用它。

【讨论】:

【参考方案2】:

如果你想摆脱底部/顶部跳转滚动,你可以使用

form.setCyclicFocus(false)

【讨论】:

【参考方案3】:

您应该坚持使用边框布局并将 HTML 组件放置在此特定用例的中心。您可以禁用表单滚动,因为默认情况下 HTML 组件确实是可滚动的:

form.setScrollable(false);

【讨论】:

【参考方案4】:

HTMLComponent 本身是可滚动的

防止滚动

setScrollable(false);

水平滚动关闭

setScrollableX(false);

希望这能解决您的问题

【讨论】:

【参考方案5】:

...或者,您可以将此代码粘贴到您的 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);
    

这对我也有用

【讨论】:

【参考方案6】:

form.serScrollable(false)form.setCyclicFocus(false) 对我不起作用。 我有一个表格,里面只有一个 HTMLComponent。 问题出在HTMLComponent 本身,禁用表单焦点不会影响它。

【讨论】:

【参考方案7】:

您可以尝试使整个组件具有焦点,这可能有助于以正确的方式滚动。除此之外,您应该在表单的 Boderlayout.center 中添加您的 html 组件,并使表单可滚动为真,循环焦点为假。

【讨论】:

【参考方案8】:

在 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
 */

我也遇到了问题,尤其是在 OS S-60 Nokia 的设备上。列表从底部跳到顶部。我通过更改返回值解决了这个问题。我将值更改为 600(从 200)。这会减少采样并防止“跳跃”。

【讨论】:

以上是关于LWUIT 滚动跳跃问题的主要内容,如果未能解决你的问题,请参考以下文章

无限滚动时防止滚动条跳跃

iOS UITableView 向上滚动时滚动位置跳跃

UICollectionView 最初滚动跳跃

UIScrollView 滚动时跳跃

带有平滑滚动的粘性导航正在跳跃

在 Safari 中滚动时,粘性菜单栏“跳跃”/闪烁