Search code examples
androidkeyboardxamarin.formsscrollview

toolbar goes up when keyboard opens xamarin forms


I want to keep toolbar visible on top while displaying soft keyboard. I tried all options with windowSoftInputMode but non of them worked. This has started occurring after upgrading xamarin forms to 2.3.4.247. It was working fine previously.

Before xamarin forms update Previous result

After xamarin forms update result


Solution

  • Below code in MainActivity solved my issue.

    Ref: https://gist.github.com/jimmgarrido/e36033b26f01e8da091fd321d41d991a

    protected override void OnCreate(Bundle bundle)
        {
            ToolbarResource = Resource.Layout.toolbar;
    
            base.OnCreate(bundle);
    
            //Remove the status bar underlay in API 21+
            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(18, 52, 86, 255));
            }
    
    
            global::Xamarin.Forms.Forms.Init(this, bundle);
            LoadApplication(new App());
    
            App.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);
        }