Я работаю над титановым Android-приложением. У меня есть ряд текстовых полей, и когда я фокусируюсь на первом, открывается мягкая клавиатура, а затем сразу же закрывается. Если я затем коснусь второго, клавиатура откроется и останется открытой, и я смогу вернуться к первому, и он останется открытым, и все в порядке. Текстовые поля создаются так:Titanium Appcelerator 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;' – turtle
Ну, похоже, это помогает. Теперь клавиатура остается открытой. Однако теперь, если я нажимаю кнопку «Далее» на клавиатуре, фокус переходит в следующее поле и клавиатура закрывается. Я попытался удалить прослушиватель событий, но потом я снова вернусь к клавиатуре, не открывая ее, когда поле фокусируется. – nasch
Вы используете титановый сплав? или вы создаете текстовые поля внутри кода контроллера? – WeMakeSoftware