当键盘出现时,查看在xamarin中向上移动形式的android

时间:2017-05-29 06:00:47

标签: android xamarin keyboard xamarin.forms window-soft-input-mode

当xamarin中的键盘popsUp形成android并且EditText字段位于屏幕底部时,状态栏和屏幕完全向上移动。我尝试使用

WindowSoftInputMode = SoftInput.AdjustPan 

WindowSoftInputMode = SoftInput.AdjustResize

但遗憾的是两人都没有工作,我也同时参加了比赛 来自博客文章i read推出

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

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 color as required.
 }

启动后应用程序是另一种选择,但不幸的是,这也失败了。还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

它是Xamarin中的一个错误。我在mainActivity中使用了以下代码

    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, 50);
    }

并使用

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

如果您强行隐藏标题栏

,问题就是无法正常工作
Forms.SetTitleBarVisibility(AndroidTitleBarVisibility.Never);

我注释掉了这段代码,问题解决了。 但由于重新调整属性,我面临很多问题,因为我设计了具有网格和星值的屏幕,这导致了许多不必要的问题。 所以我不会遗憾地使用这种方法。 :(