问题标签 [lwuit-textfield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
103 浏览

java - LWUIT 剂量中的 TextField isVisible() 函数按方面工作

我正在使用 LWUIT 库开发移动应用程序。它是一个包含容器和组件的表单。我有一个容器 c2,其中包含某些控件,例如各种文本字段、标签等。我正在尝试对其进行验证。但在某些情况下,验证应该只对屏幕上可见的组件起作用。例如,我遇到 c2 容器不在屏幕上的情况,然后我尝试通过以下代码检查它是否可见:

尽管在屏幕上不可见,但它仍显示为TRUE。但我想它应该显示FALSE。我试过 isEnabled 但它不符合我的要求。我的想法用完了,最后的手段就是这样。任何帮助,将不胜感激。

0 投票
1 回答
147 浏览

java-me - 虚拟键盘隐藏时如何从 LWUIT 文本字段中移除焦点并正确调整表单大小?

我遇到了 LWUIT 的Textfield的问题。

在我的某些表单中,我显示CategoryBar,而在其他表单中,我隐藏它。

在我有Textfields的某些表单中,当我专注于一个表单并使虚拟键盘(VKB) 出现时,问题就会出现。当VKB出现时,屏幕组件会自行调整大小以适应Textfield在输入文本时可见,但是当我通过 VKB 上的后退按钮或返回键隐藏VKB Textfield仍然保持焦点,不仅如此,当屏幕组件调整自己的大小时,当前可见的Form也会调整自己的大小,就好像没有CategoryBar存在一样,所以任何位于Form底部的组件CategoryBar隐藏。

这可以通过显示另一个 Form(这包括PopupChoiceGroupDatePicker)然后返回到CategoryBar覆盖的Form来解决。

在没有CategoryBar可见的其他 Forms 中,有时在显示VKB时调整大小会导致 Forms 调整自己的大小,就好像CategoryBar是可见的,从而可以在它不应该可用时与之交互。

如何确保焦点完全丢失在Textfield上?此外,无论CategoryBar是否可见,如何确保正确调整 Form 的大小?

编辑

我一直在挖掘TextFieldFormVKB的类引用,后来我发现了一个名为autoAdjust的方法,根据文档:

自动调整对话框的大小。此方法由 sizeChanged事件触发。

方法sizeChanged听起来像是我应该检查的东西,在Form的参考中,该方法的描述是:

仅当表单的底层画布获得大小更改事件时,才会调用此方法。此方法将触发表单的重新布局。仅当此表单为当前表单时,此方法才会获取回调

这个方法看起来像是我正在寻找的调整大小的回调,所以我覆盖了它并放置了一个NotificatioBar来显示调用该方法时发送的宽度和高度值。

在我的设备上对此进行测试后我发现,当在显示或隐藏VKB后调整窗体大小时,高度值有时而不是270(显示CategoryBar时窗体的高度)它被发送为320(全屏高度,好像没有显示CategoryBar)。

到目前为止,我还无法理解为什么 Form 在调整自身大小时会忽略CategoryBar是否正在显示的事实。

我试图在其sizeChanged方法中更改 Form 高度,但Form不受它的影响。在我看来,我必须修改的是正在绘制表单的画布,但我不确定,因为画布隐藏在 LWUIT 中。

难道是我的表格正在绘制的画布是错误的吗?是什么引发了这种行为?