如何在 Android 中修改自定义键盘的 ExtractedEditText

How to modify the ExtractedEditText for a custom keyboard in Android

我想在自定义键盘的提取文本视图中更改文本的字体和文本大小。我如何获得对 EditText 的引用?

我刚刚通过检查 InputMethodService 源代码学会了如何执行此操作,因此我将其作为问答发布。我的回答如下。

您可以通过重写 InputMethodService 子类中的 onCreateExtractTextView() 来获取对 ExtractedEditText 的引用。在传递之前,您可以在那里随意修改它。

@Override
public View onCreateExtractTextView() {
    View extractedView = super.onCreateExtractTextView();
    ExtractEditText editText = extractedView.findViewById(android.R.id.inputExtractEditText);
    editText.setTypeface(myTypeFace);
    editText.setTextSize(myTextSize);
    return extractedView;
}

请注意 documentation 表示:

public View onCreateExtractTextView ()

Called by the framework to create the layout for showing extacted (sic) text. Only called when in fullscreen mode. The returned view hierarchy must have an ExtractEditText whose ID is R.id.inputExtractEditText.