在代号一个TextModeLayout

时间:2018-12-28 22:12:31

标签: codenameone

我的问题是我找不到任何方法可以在TextComponent内的TextModeLayout附近正确添加图标来屏蔽/取消屏蔽密码。

这仅是一个布局问题,因为ActionListener用来屏蔽/取消屏蔽密码的代码至少在模拟器中正常工作(取自Codename One - Mask and Unmask Password Field on iOS)。

在iPhone皮肤上,InputComponents标签和文本字段未正确对齐: enter image description here

在Android皮肤上,如果无效,则文本无法正确对齐: enter image description here

关于我的代码,我没有将InputComponent(密码)直接添加到TextModeLayout容器中,而是将InputComponentButton封闭在{{ 1}},然后将BorderLayout容器添加到BorderLayout容器中。

1 个答案:

答案 0 :(得分:1)

执行此操作时,文本模式布局将对该组件停止工作,因为它不知道层次结构中的布局。边框布局中的层次结构是该布局的责任。

解决方案是扩展TextComponent并将该功能添加到Codename One。作为解决方法,我们可能可以依靠当前组件的行为,因为该字段已经在边框布局组件中。所以类似的事情可能会起作用:

TextField tf = myTextComponent.getField();
Container b = tf.getParent();
b.add(EAST, unmask);