Я пытаюсь заставить свое приложение Xamarin.Forms использовать иммерсивный режим Android, поскольку я использую устройство с маленьким экраном, поэтому программные клавиши и панель навигации крадут мое драгоценное пространство на экране.
Поскольку устройство, которое я использую, оснащено аппаратной клавиатурой, я хотел скрыть мягкую клавиатуру. В настоящее время я решил эту проблему, установив клавиатуру "Null Input Method". Однако клавиатура все еще там, поэтому каждый раз, когда запрашивается фокус на элементе Entry, клавиатура «отображается». Это заставляет приложение выйти из иммерсивного режима. То же самое верно, когда я показываю предупреждение из моего приложения форм.
В идеале я бы хотел, чтобы мое приложение все время оставалось в иммерсивном режиме, по крайней мере, когда запрашивается фокус на Entry (мягкая клавиатура вообще не «отображается» или иммерсивный режим не отключается, когда клавиатура «отображается»). Для предупреждений я хотел бы, чтобы приложение повторно входило в иммерсивный режим, когда предупреждение скрыто. В настоящее время я решил эту проблему, расширив класс Page с помощью настраиваемых методов DisplayAlert, которые переключают иммерсивный режим после завершения задачи DisplayAlert.
Я провел небольшое исследование и нашел следующие статьи: Иммерсивный режим при использовании клавиатуры Похоже, управляемый пользователем чтобы решить проблему, значит, может быть решение?
https://forums.xamarin.com/discussion/33034/prevent-entry-soft-keyboard-from-showing-on-android Но это решение не работает с элементами Entry, и я бы хотел избежать написания пользовательских средств визуализации для элементов.
Есть ли кто-нибудь, кто раньше сталкивался с подобной проблемой и сумел ее решить?