如何在Android中定义Google键盘?

How to define Google Keyboard in Android?

我的 Android 游戏中的 Google 键盘有一些问题。
当 Google 键盘在我的 activity 中打开时,行为变得非常有趣
- 触摸键盘区域通过它到达我的 activity 并在那里按下按钮
- 触摸 activity(上键盘区域)变得冻结并且不会产生任何事件

默认 Android 键盘没有任何问题。
那么,如何在代码中定义Google键盘呢?

我定义 Google 键盘的努力没有成功。
我尝试了下一段代码:

var _manager = (InputMethodManager) view.Context.GetSystemService(Context.InputMethodService)

var subType = _manager.CurrentInputMethodSubtype;

if (subType.ContainsExtraValueKey("SupportTouchPositionCorrection") ||
                subType.ContainsExtraValueKey("KeyboardLayoutSet"))
{
    //Hide keyboard
}

我调查了 Swift、Swype、原生 Android 键盘的 额外值 ,看起来 Google 键盘与那些键盘不同。

但是,一般来说,这是不正确的调查方式。
真正有用的是 - 在我的根视图

上重写方法 OnCreateInputConnection
public override IInputConnection OnCreateInputConnection(EditorInfo editorInfo)
        {
            editorInfo.ImeOptions = ImeFlags.NoExtractUi;
            editorInfo.InputType = InputTypes.Null;
            return new BaseInputConnection(this, false);
        }

ImeFlags.NoExtractUi

帮我解决了 Google 键盘显示不正确的问题。
要阅读的正确线程是 here