2017-04-18 82 views
2

另一天,另一个bug ... 我有三个AutoCompleteTextFields过滤器覆盖从我的REST服务完成,但我的大问题是,这些文本的建议弹出窗口点击通过.. 。所以当我已经完成其中的一个时,任何点击另一个的建议弹出窗口都会触发底层的ACTF,这个ACTF已经被填充并显示它自己的弹出框,从而无法从另一个ACTF建议弹出框中选择该项目。Codename One - AutoCompleteTF不良行为

这两个屏幕截图显示了情况,ACTF是textfield暗示的“Partenaire”,“Contact ...”和已经自动完成的一个。

在第二个屏幕截图上,我尝试在第三个ACTF上选择该项目,因此四个第一个结果来自第三个ACTF,最后四个来自“Partenaire”ACTF。

是否有一种方法可以覆盖类似onShow()的弹出窗口,并且它隐藏了等价物,所以当我键入其中一个时,可以禁用其他ACTF?

我认为这是解决问题的好办法,但我愿意接受任何其他的想法:)

我已经忘记提及它,但问题出现在Android和在模拟器上,但iOS版没有这样的问题。

enter image description hereenter image description here

+0

这是否只发生在设备上(android),或者它也发生在模拟器中吗? –

+0

它发生在设备和模拟器上 –

+0

但只有在Android上,从未在iOS –

回答

1

检查你的UI已经滚动设置正确,层次结构中的唯一一个集装箱可以在Y轴滚动。默认情况下,表单的内容窗格应该可以在Y上滚动(除非是边框布局)。

+0

所以问题是ACTF建议框是可滚动的?我的表单也是可滚动的,所以屏幕上有多个可滚动的容器,它会导致不良行为?有什么方法可以改变建议框的可滚动行为(不需要重写整个ACTF类)? –

+0

您需要有一个可滚动的容器,否则当您编辑时弹出一个虚拟键盘,我们不知道滚动到正确位置的位置/内容。这将适用于任何输入,并且是重要的可用性最佳实践。嵌套可滚动容器尤其有问题,因为我们没有滚动条和触摸滚动,我们无法知道哪个组件被滚动。 –