Java 自定义键盘候选视图导致Gmail EditText跳转

Java 自定义键盘候选视图导致Gmail EditText跳转,java,android,keyboard,ime,Java,Android,Keyboard,Ime,当我使用我的自定义键盘在Gmail应用程序中输入文本时,屏幕会随着每个按键的敲击而上下“跳跃” 我已经找到了候选视图的原因(当该视图被禁用或高度为零时,屏幕不会跳转)。Android docs指出,由于候选视图往往显示和隐藏很多,因此它不会像软输入视图那样影响应用程序UI:它不会导致应用程序窗口调整大小,只有当用户需要查看当前焦点时,才会对其进行平移。因此我怀疑“跳跃”可能是由Gmail视图平移造成的 有人知道如何防止这种“跳跃”发生,因为它使键盘很难使用吗 我已检查是否未调用SetCandid

当我使用我的自定义键盘在Gmail应用程序中输入文本时,屏幕会随着每个按键的敲击而上下“跳跃”

我已经找到了候选视图的原因(当该视图被禁用或高度为零时,屏幕不会跳转)。Android docs指出,由于候选视图往往显示和隐藏很多,因此它不会像软输入视图那样影响应用程序UI:它不会导致应用程序窗口调整大小,只有当用户需要查看当前焦点时,才会对其进行平移。因此我怀疑“跳跃”可能是由Gmail视图平移造成的

有人知道如何防止这种“跳跃”发生,因为它使键盘很难使用吗


我已检查是否未调用SetCandidatesViewShowed(false),并且自定义候选视图的onMeasure方法始终返回正确的高度。

这里有一个完美的解决方案。 只需在InputMethodService中重写以下方法

@Override
public void onComputeInsets(InputMethodService.Insets outInsets) {
    super.onComputeInsets(outInsets);
    if (!isFullscreenMode()) {
        outInsets.contentTopInsets = outInsets.visibleTopInsets;
    }
}
希望能有所帮助