最近稍微处理了一下有关Android自带的输入法问题,稍微做下笔记,以便以后复习。至于输入法的相关概念,可以去看看这本PDF——《Android开发实例详解之IMF(Android_SDK_Sample—SoftKeyboard)》,虽然讲得基础但是比较实在。
输入法源码位置:packages\inputmethods\PinyinIME
(1)输入法无法翻页的问题:
主要在CandidateView类中进行处理,CandidateView是一个候选字显示view,它提供一个候选字选择的视图,直接继承于View类即可。在我们输入字符时,它应该能根据字符显示一定的提示,比如拼音同音字啊,联想的字啊之类的。CandidateView 类里onSizeChanged 方法中,由于每次size发生变化,都会导致第一页重置,所以将导致重置的那个成员变量去掉即可,即mPageNo = 0 注释即可。
(2)白条问题:
有时候我们在切换输入法的时候,候选框白条仍旧存在,而处理这个问题则在PinyinIME.java里面。我们每次切换输入法的时候,都会调用到resetCandidateWindow()方法,所以我们只要在里面添加setCandidatesViewShown(false)方法即可,这个方法作用是设置是否显示候选框。
(3)监听开启关闭
http://www.iteye.com/topic/601094
http://blog.3gstdy.com/archives/545
http://www.bangchui.org/read.php?tid=17852