【发布时间】:2018-04-03 15:58:20
【问题描述】:
我想在全屏模式下为自定义 Android 键盘提供修改后的视图。
我发现了这个问题:This
但我不明白如何应用它。 我到底应该在 setExtractView(View view) 中写什么才能使用我自己的布局?
请帮忙!
【问题讨论】:
标签: android layout view custom-keyboard
我想在全屏模式下为自定义 Android 键盘提供修改后的视图。
我发现了这个问题:This
但我不明白如何应用它。 我到底应该在 setExtractView(View view) 中写什么才能使用我自己的布局?
请帮忙!
【问题讨论】:
标签: android layout view custom-keyboard
要在全屏模式下为自定义 Android 键盘提供修改后的视图,您必须覆盖自定义键盘类(扩展 InputMethodService)中的 onCreateExtractTextView 方法:
@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;
}
【讨论】: