我有一个带文本字段的Android应用程序。当我开始打字时,键盘会向上推背景图像。
我希望图像保留在原处,而键盘将其覆盖。
将布局更改为BoxLayout或BorderLayout不会对背景图像的位置产生任何影响,也不会更改可滚动内容:
container.setScrollableY(false);
form.setScrollableY(false);
如何实现将图像固定在适当的位置?
我无法弄清的另一件事是使用TextField中已经存在光标并且可见的键盘来访问表单,设置为:
textField.requestFocus();
但是那也没有达到预期的效果。
任何帮助将不胜感激。
答案 0 :(得分:2)
除了Shai的答案,您还可以尝试将TextField父容器放置在BorderLayout容器的北中,并将图像容器放置在 center 中。这样可以强制键盘在中心的图像上滑动。
要回答显示表单时TextField编辑的部分,请在TextField表单中添加以下内容
form.setEditOnShow(textField);
如果TextField中已经有一些文本,则可能需要在下面进行设置,以将光标置于末尾:
CN.callSerially(() -> {
textField.setCursorPosition(textField.getText().length());
form.repaint(); // optional form repainting
});
答案 1 :(得分:1)
文本字段必须位于可滚动的父级中。
如果图像和文本字段在同一容器中,并且文本字段在图像上方,则可能会更接近第二个图像。在iOS上,滚动区域增大以容纳虚拟键盘,在Android上,屏幕尺寸被调整为容纳虚拟键盘。
随着屏幕尺寸的适应,这可能导致细微的行为差异。