public override bool OnKeyPreIme(Keycode keyCode, KeyEvent e) { // As seen on StackOverflow: http://stackoverflow.com/questions/7634346/keyboard-hide-event // FIXME: Discussion at http://bugzilla.libsdl.org/show_bug.cgi?id=1639 // FIXME: This is not a 100% effective solution to the problem of detecting if the keyboard is showing or not // FIXME: A more effective solution would be to change our Layout from AbsoluteLayout to Relative or Linear // FIXME: And determine the keyboard presence doing this: http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android // FIXME: An even more effective way would be if Android provided this out of the box, but where would the fun be in that :) if (e.Action == KeyEventActions.Up && keyCode == Keycode.Back) { if (SDLActivity.mTextEdit != null && SDLActivity.mTextEdit.Visibility == ViewStates.Visible) { SDLActivity.onNativeKeyboardFocusLost(); } } return(base.OnKeyPreIme(keyCode, e)); }