Search code examples
androidxamarin.formsxamarin.androidandroid-softkeyboardmaui

.NET MAUI Entry keyboard does not hide


I have a very simple UI that has one entry control to enter phone number and a button. The entry control has a handler for removing border around it. When the entry control got focus, keyboard pops up. But when I try to tap outside the entry control such as on the screen empty area, the keyboard does not dismiss and the entry control does not lose focus. Also since the button is at the bottom of the screen, therefore, the soft keyboard hides it and there is no way to tap the button. The button can only be tapped if I press the Android device back button.

At present, I have not checked this behavior on an iOS device.

This was not a problem in Xamarin Forms though. I searched a lot on Internet and found that it is currently a bug in MAUI.

I tried to attach a tap gesture on the parent layout control and invoked platform-specific code to hide the keyboard but it seems the entry does not lose focus and in turn the tap gesture event is never called.

However, the entry control should lose focus automatically when I tap outside the entry control (such as on the screen) and the soft keyboard should automatically dismiss.

Please provide a workaround if there is any.


Solution

  • With .NET8 ContentPage has HideSoftInputOnTapped attribute. If you set it to true, the keyboard will be dismissed touching anywhere on the page.

    <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 HideSoftInputOnTapped="True"
                 x:Class="MyApp.MainPage">
        <Entry />
    </ContentPage>