Как мне перерисовать приложение Xamarin.Forms, когда пользователь скрывает панель навигации Android на Samsung S9 - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть приложение Xamarin.Forms, которое не перерисовывается, когда пользователь скрывает панель навигации на Samsung S9 (и, вероятно, S8). Все, что я получаю, это пустой пробел, где раньше была панель навигации.

Прикрепленные изображения, показывающие нижнюю часть экрана, демонстрируют то, что я вижу до и после скрытия панели навигации.

Видна панель навигации:

Navigation bar visible

Панель навигации скрыта:

Navigation bar hidden

Есть ли способ, чтобы мое приложение отвечало и перерисовывало экран, чтобы использовать дополнительное пространство, оставленное панелью навигации? Обратите внимание, что заставка заполняет весь экран и не оставляет пустого места внизу.

1 Ответ

0 голосов
/ 03 мая 2018

Оказывается, что приложение, над которым я работал, использовало код, основанный на решении Майкла Димудиса , чтобы «приручить» клавиатуру на Android.

Это решение выборочно изменяет высоту корневого представления при появлении и исчезновении программной клавиатуры. Оказывается, он был слишком избирательным для моих нужд, и я изменил код, чтобы всегда обновлять высоту, если доступная высота изменяется.

Для других, использующих решение Михаэля и / или заинтересованных в моих модификациях, я изменил метод Возможно возможно, ResizeChildOfContent , чтобы прочитать:

    private void PossiblyResizeChildOfContent()
    {
        var usableHeightNow = this.ComputeUsableHeight();
        if (usableHeightNow != this.usableHeightPrevious)
        {
            this.frameLayoutParams.Height = usableHeightNow;
            this.mChildOfContent.RequestLayout();
            this.usableHeightPrevious = usableHeightNow;
        }
    }

Надеюсь, это поможет кому-то с похожими проблемами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...