一、输入法界面区域分布图
先给出实现的效果
输入法界面布局区域分布.jpg 完整的输入法区域对比.jpg
二、实现过程详解
主要使用以下三个方法
public class MyIMEService extends InputMethodService {
@Override
public void onStartInputView(EditorInfo info, boolean restarting) {
super.onStartInputView(info, restarting);
setCandidatesViewShown(true); // 1. 让CandidateView永远可见,如果不设置,默认是不可见
}
@Override
public View onCreateCandidatesView() {
View candidateView= getLayoutInflater().inflate(R.layout.layout_candidate_view, null);
return candidateView; // 2. 返回候选面板视图
}
@Override
public View onCreateInputView() {
View inputView= getLayoutInflater().inflate(R.layout.layout_input_view, null);
return inputView; // 3. 返回输入面板视图
}
}
布局代码就不贴出来了,都是基本的布局方式;
我们继承了系统的IMS,系统会自动回调这些方法,来填充对应的区域。其实输入法的界面布局也就是这么简单的一个逻辑。
是不是很简单?下一篇文章我会仔细分析一下IMS。
下面是源码地址:
Android输入法界面区域介绍
网友评论