Android 取消横屏时输入法全屏问题,常见与车机

一共有三种方式分别修改的层也不一样
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行代码。。。。
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容