使用自定义键盘在全屏模式下自定义视图

Customize view in fullscreen mode with custom keyboard

我想在全屏模式下为自定义 Android 键盘提供修改后的视图。

我发现了这个问题:This

但是我不知道怎么申请。 我到底应该在 setExtractView(View view) 中写些什么才能使用我自己的布局?

请帮忙!

要在全屏模式下为自定义 Android 键盘提供修改后的视图,您必须覆盖自定义键盘 class 中的 onCreateExtractTextView 方法(扩展InputMethodService):

@Override
public View onCreateExtractTextView() {
// edit standard layout for full-sreen mode 
// androidsdk/platforms/android-26/data/res/layout/input_method_extract_view.xml

View inflater = super.onCreateExtractTextView(); // returns standard com.android.internal.R.layout.input_method_extract_view

// extract IDs from input_method_extract_view.xml
Resources res = Resources.getSystem(); // system resources
int id_inputExtractEditText = res.getIdentifier("inputExtractEditText", "id", "android"); // ExtractEditText
int id_inputExtractAccessories = res.getIdentifier("inputExtractAccessories", "id", "android"); // FrameLayout
int id_inputExtractAction = res.getIdentifier("inputExtractAction", "id", "android"); // ExtractButton

ExtractEditText inputExtractEditText = inflater.findViewById(id_inputExtractEditText);
FrameLayout inputExtractAccessories = inflater.findViewById(id_inputExtractAccessories);
Button inputExtractAction = inflater.findViewById(id_inputExtractAction);

// do anything with extracted views:
inputExtractEditText.setBackgroundColor(getResources().getColor(R.color.keyboard_backgound1));
inputExtractAccessories.setBackgroundColor(getResources().getColor(R.color.keyboard_backgound2));
inputExtractAction.setBackgroundColor(getResources().getColor(R.color.key_GradientGreen));

return inflater;
}