一共有三种方式分别修改的层也不一样
1、直接在app上进行修改,只需要在Edittext的布局中加入如下属性: android:imeOptions="flagNoFullscreen"
<EditText
android:imeOptions="flagNoFullscreen"
android:layout_width="match_parent"
android:layout_height="100dp"></EditText>
这个改法可以控制自己的app但是如果像车机上我们定制系统,这个就不行了,因为不是所有app都是自己开发,有可能有三方的应用安装,不能指望所有应用都加入这个属性。
2、 frameworks层修改frameworks/base/core//inputmethodservice/InputMethodService.java
在updateFullscreenMode(..)中,将boolean isFullscreen = mShowInputRequested && onEvaluateFullscreenMode();改为boolean isFullscreen=false; 也可以:直接修改onEvaluateFullscreenMode()的返回值为false
3、自定义输入法:如果我们是自己继承InputMethodService从新写的输入法,那么我们在代码中重写updateFullscreenMode就可以
public class PinyinIME extends InputMethodService {
//省略N行代码。。。。
@Override
public boolean onEvaluateFullscreenMode() {
return false;
}
//省略N行代码。。。。
}