容纳Xamarin Forms中的屏幕键盘使根页的一半空白

时间:2017-05-17 03:35:20

标签: android xamarin xamarin.forms

当我实现这个时,我在Android上有一个问题,如果我在堆栈中的第二个屏幕上,然后按回到上一页,则屏幕上会留下一个框架,阻止根页的一半。在帖子的评论中提出了2个解决方案

  1. 每次重新加载页面时更新其屏幕大小。
  2. 或者,点击后退按钮,使其先关闭键盘,然后再向后移动。
  3. 我无法解决其中的任何问题,也许我执行错误。

    有关escenario的更多信息

    https://xamarinhelp.com/accommodate-on-screen-keyboard-xamarin-forms/

1 个答案:

答案 0 :(得分:0)

在LoadApplication(new App())之后删除使用变通方法和SetSoftInputMode并将其替换为;

App.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);

然后设置此解决方法,因为它会搞砸你的StatusBar

        if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
        {
            Window.DecorView.SystemUiVisibility = 0;
            var statusBarHeightInfo = typeof(FormsAppCompatActivity).GetField("_statusBarHeight", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
            statusBarHeightInfo.SetValue(this, 0);
            Window.SetStatusBarColor(new Android.Graphics.Color(0, 0, 0, 255)); // Change to your desired color
        }