Dismiss keyboard on button press
Xamarin Forms project
public interface IKeyboardHelper
{
void HideKeyboard();
}
Xamarin Forms page
DependencyService.Get<IKeyboardHelper>().HideKeyboard();
Xamarin.Android
using System;
using Xamarin.Forms;
using ProjectName;
using ProjectName.Droid;
using Xamarin.Forms.Platform.Android;
using Android.Views.InputMethods;
using Android.App;
using Android.Content;
[assembly: Xamarin.Forms.Dependency(typeof(DroidKeyboardHelper))]
namespace ProjectName.Droid
{
public class DroidKeyboardHelper : IKeyboardHelper
{
public void HideKeyboard()
{
var context = Android.App.Application.Context;
var inputMethodManager = context.GetSystemService(Context.InputMethodService) as InputMethodManager;
if (inputMethodManager != null && context is Activity)
{
var activity = context as Activity;
var token = activity.CurrentFocus?.WindowToken;
inputMethodManager.HideSoftInputFromWindow(token, HideSoftInputFlags.None);
activity.Window.DecorView.ClearFocus();
}
}
}
}
Xamarin.iOS
using System;
using Xamarin.Forms;
using ProjectName;
using ProjectName.iOS;
using UIKit;
[assembly: Dependency(typeof(iOSKeyboardHelper))]
namespace ProjectName.iOS
{
public class iOSKeyboardHelper : IKeyboardHelper
{
public void HideKeyboard()
{
UIApplication.SharedApplication.KeyWindow.EndEditing(true);
}
}
}
AndroidManifest.xml
<application //Add this attribute android:windowSoftInputMode="adjustResize" </application>