Une autre méthode similaire à la réponse acceptée consiste à sous-classer la vue Racine de la disposition et à surcharger OnInterceptTouchEvent, à masquer le clavier et à renvoyer false pour permettre au toucher de se propager comme d'habitude.
L'exemple ci-dessous est pour Xamarin mais il est facile de le porter à Java :
public class KeyboardHidingScrollView : ScrollView
{
public KeyboardHidingScrollView (Context context) : base (context)
{
}
public KeyboardHidingScrollView (Context context, IAttributeSet attrs) : base (context, attrs)
{
}
public override bool OnInterceptTouchEvent (Android.Views.MotionEvent ev)
{
var methodManager = (InputMethodManager)Context.GetSystemService (Context.InputMethodService);
methodManager.HideSoftInputFromWindow (WindowToken, HideSoftInputFlags.None);
return false;
}
}