【问题标题】:Scrolling issues with a TextArea in LWUITLWUIT 中 TextArea 的滚动问题
【发布时间】:2011-10-04 17:51:00
【问题描述】:

我在 LWUIT 中有一个 TextArea,我在处理时遇到了问题。我有以下两个问题:

  1. 即使我打电话给setIsScrollVisible(true),我似乎也没有 滚动条,当输出低于可见时无法滚动 容器的区域。

  2. 如何让TextArea 自动滚动到底部 以编程方式?

我的 TextArea 初始化代码如下所示:

myTextArea = new TextArea(20, Display.getInstance().getDisplayWidth());
myTextArea.setEditable(false);
myTextArea.setEnabled(true);
myTextArea.setIsScrollVisible(true);
myTextArea.setGrowByContent(false);
System.out.println(myTextArea.isScrollableY());

isScrollableY() 返回真。有任何想法吗?有什么我想念的吗? API 中似乎没有任何可见的东西可以让我显式启用或禁用滚动。在此先感谢您提供任何帮助。

【问题讨论】:

  • 我已经测试了您的代码,它对我来说可以正常工作。为什么你通过Display.getInstance().getDisplayWidth()
  • 我希望表单与屏幕一样宽。如果此代码在标准 JVM 上运行良好,那么我正在使用的专有实现可能存在问题?

标签: java java-me lwuit autoscroll lwuit-textarea


【解决方案1】:

文本区域的宽度以列为单位,而不是您在代码中的像素。

将滚动设置为可见不会导致它出现,因为 LWUIT 滚动条总是“按需”,这意味着滚动条只会在必要时出现,将此值设置为 false 只会隐藏滚动条而不管是否必要。

要让文本区域占据整个宽度,只需将其放置在框布局 Y 容器/表单中,布局管理器就会在 X 轴上拉伸它。

您可以使用scrollRectToVisible() 将文本区域滚动到底部,或者您可以派生文本区域并使用具有适当值的setScrollY(int)(请参阅文本区域的源代码,了解如何使用它来滚动文本地区。

【讨论】:

  • 我知道它不是按像素计算的,但是,我想我尝试使用 scrollRectToVisible() 并没有用。我将再试一次并报告,但我目前正在研究该项目的其他领域,因此可能需要一段时间才能对其进行测试。
  • 事实证明,我们客户的初始交付存在问题,最新更新允许与滚动相关的方法正常工作。
【解决方案2】:

尝试一个简单的textArea.setFocusable(false)。这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多