Здравствуйте
Я делаю сценку, где просто два поля: логин и пароль, и кнопка сабмит. Всё бы ничего, но есть 2 нюанса:
При нажатии на поле ввода (LineEdit) - появляется софтверная клавиатура, которая заслоняет собой поле ввода, ну это не беда, можно делать сдвиг UI:
...
UI.SubscribeToFocusChanged(HandleFocusChanged);
...
}
private void HandleFocusChanged(FocusChangedEventArgs obj)
{
if (obj.ClickedElement == null)
{
game.UI.Root.SetPosition(0, 0);
return;
}
if (obj.ClickedElement.TypeName != "LineEdit")
{
game.UI.Root.SetPosition(0, 0);
}else
{
game.UI.Root.SetPosition(0, -300);
}
}
И всё хорошо.
Теперь нюанс №2
Если я ввожу данные в первое поле ввода, Login, и нажимаю на второе поле ввода (Password) - фокус переключается на второе поле ввода, но клавиатура пропадает (?!)
Ну видимо подразумевается, что я буду нажимать на ентер на софтовой клавиатуре, она благополоучно пропадает, UI выравнивается, потом я нажимаю на пароль - клавиатура опять появляется, но это не всегда удобно.
ИИ... на этом мысль останавливается.
Как это пофиксить ?
Вот смотрю я на код... Это c#? UrhoSharp?
А, черт. Только сейчас увидел что вопрос в разделе UrhoSharp.
Я бы очень настоятельно рекомендовал сделать меню входа в игру на xamarin.forms.
Вопрос не об этом, я буду использовать UrhoSharp UI
Вопрос в этом в широком смысле. Вот эти софтовые клавиатуры и т.п. - это все в итоге гигантская головная боль.
Я по этому UrhoSharp так приветствую что его можно встраивать в обычные приложения и менюшки делать на xaml/xamarin.forms. Уходят проблемы с языками, иероглифами, способами ввода и т.п. Все нативное для платформы, все понятное и удобное пользователю.
Я делаю игру, а не очередное Form приложение со стандартным интерфейсом.
В игре есть свой дизайн, цветовая гамма, стиль (размеры и цвет элементов управления, их расположнеие, рамочки и так далее).
Это всё можно задать в xml UrhoSharp, а если понадобится освежить дизайн (ну хотя врят-ли) - то достаточно будет в Urho Editor немножко поправить xml
Вопрос в другом, как вернуть софтовую клавиатуру при переключении фокуса между LineEdit ?
j-nox
Удачи тогда. Оставлю за собой право через несколько месяцев сказать "а я же говорил!".
Максимум смогу помочь когда до дома доберусь вечером. Но наверно кто то успеет быстрее ответить.
У нас один специалист по урхошарпу - Nagg и он куда-то пропал)
Так что хз, на такие специфические вопросы мы наверное не ответим
Ну у меня есть план Б - показывать клавиатуру самому принудительно, но я сперва хотел посоветоваться, перед тем как городить костыль
j-nox
Если есть время - посмотри в исходниках urho3d. Если не найдешь - я вечером гляну.
Да, сейчас проверил на телефоне, все норм - клава никуда не исчезает при переходе на другое текстовое поле. (UrhoSharp 1.2.21)
У меня тоже 1.2.21, страннно, пропадает клавиатура и в эмуляторе и в телефоне (Samsung I9300 Galaxy S III)
в эмуляторе (genymotion) - нейтивную клаву вообще не показывает у меня. Тел - note 3. А так, выше описанную проблему я наблюдал раньше, когда текстовые поля были в разных Uielement или window, когда же у них был один родитель было норм - посмотри этот вариант если у тебя по другому...
пробуй, желательно без - UI.SubscribeToFocusChanged(HandleFocusChanged)
Кстати, я добавил два поля ввода в семпл "FeatureSamples" там где SceneAndUILoad
Тот-же эффект, клавиатура пропадает при переходе от поля к полю
у меня андроид 4.4
Увы, я исчерпал варианты - передаю ход GLoom))
Тема в архиве.