【发布时间】:2015-03-03 14:28:08
【问题描述】:
我正在开发一款 Titanium Android 应用。我有一系列文本字段,当我关注第一个时,软键盘打开然后立即关闭。如果我然后点击第二个,键盘打开并保持打开状态,我可以回到第一个,它保持打开状态,一切都很好。 文本字段是这样创建的:
obj.softKeyboardOnFocus = Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS;
obj.height = 40;
obj.width = 200;
obj.left = 4;
obj.top = 3;
obj.autocorrect = false;
obj.autocapitalization = Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE;
obj.focusable = true;
//obj.clearButtonMode = Titanium.UI.INPUT_BUTTONMODE_ONFOCUS;
obj.keyboardType = Titanium.UI.KEYBOARD_URL;
if (Titanium.Platform.displayCaps.platformWidth > 320) {
obj.font = {
fontSize : getAndroidNumbers(16, 22)
};
obj.top = getAndroidNumbers(3, 4);
obj.height = getAndroidNumbers(40, 60);
obj.width = getAndroidNumbers(200, 200);
}
var tf = Titanium.UI.createTextField(obj);
我还为除最后一个编辑字段之外的所有字段添加了侦听器,以解决键盘根本无法打开的问题:
prevTf.addEventListener('return',function(){
Ti.API.debug("return event listener firing for " + tag);
tf.focus();
});
prevTf 是列表中的前一个文本字段,而 tf 是当前文本字段,因此当在一个字段上单击返回(“下一个”)时,会聚焦下一个字段(并且键盘保持打开状态)。以前单击 Next 时,焦点会更改为下一个字段,但键盘会关闭。现在 Next 正在工作,但第一个字段不会让键盘保持打开状态。有什么想法吗?
【问题讨论】:
-
尝试删除
obj.softKeyboardOnFocus = Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS; -
嗯,这似乎有帮助。键盘现在保持打开状态。但是,现在如果我按下键盘上的 Next 按钮,焦点会转到下一个字段并且键盘会关闭。我尝试删除事件侦听器,但是当该字段聚焦时,我回到键盘根本没有打开。
-
您使用的是钛合金吗?还是您在控制器代码中创建文本字段?
-
不是合金,只是在 javascript 中创建文本字段。
-
我正在使用 Android 4.2.2 的华为 P6 上测试您的代码。它按预期工作 - 当文本字段获得焦点/按下键盘上的下一个按钮时,键盘可见