簡體   English   中英

LWUIT textarea滾動問題

[英]LWUIT textarea scroll issue

我對LWUIT滾動有問題。 我有一個包含textarea和20個標簽的表格。 當滾動到底部時,它跳到頂部(如循環)。 對不起,我的英語不好 :(

這是我的代碼

public class ScrollMidlet extends MIDlet {

public void startApp() {
    Display.init(this);
    Form mainForm = new Form("Scroll issue");
    mainForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS));

    TextArea textArea = new TextArea("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum");
    mainForm.addComponent(textArea);

    for (int i = 0; i < 20; i++) {
        mainForm.addComponent(new Label("This is label " + (i + 1)));
    }
    mainForm.setScrollable(true);
    mainForm.show();
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

}

您需要使用setCyclicFocus方法禁用循環焦點。

mainForm.setCyclicFocus(false);

編輯:LWUIT滾動基於當前組件的焦點工作。 因此,當您按下向下箭頭時,焦點將切換到下面的元素,並且在必要時滾動窗體。 標簽默認情況下無法聚焦,因此它們將不會獲得焦點,並且滾動將無法正常工作。 要更正此問題,您應該修改標簽創建。

Label l = new Label("This is label " + (i + 1));
l.setFocusable(true);
mainForm.addComponent(l);

此外,水平滾動閱讀內容確實是很糟糕的用戶體驗,因此應禁止水平滾動。

mainForm.setScrollableX(false);
mainForm.setScrollableY(true);

現在,setCyclicFocus應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM