• Android APP 隐藏系统软键盘的方法


    1.场景描述:

    1) APP项目中经常会开发自定义软键盘;同时在使用EditText时,也会常常遇到自动弹出系统自带的软键盘,与自定义的软键盘产生冲突的情况;此时需要禁止EditText自动弹出系统软键盘,从而使自定义的软键盘正常显示。

    2. 功能实现

    1)首先,在清单文件AndroidManifest.xml中,给EditText所在的Activity页面设置属性

     android:windowSoftInputMode="stateAlwaysHidden"

    最后,找到EditText所在的Activity,在初始化时设置方法

    editText.setShowSoftInputOnFocus(false);

     

    在开发中经常会遇到这样的问题,进入一个含Edittext的Activity后总是会自动弹出软件盘。但是有时候我们又不想让它弹出,因为影响美观,而且用户可能也会反感。最好的做法是刚进入时不让弹出,在用户输入的时候才让弹出,把主动权交个用户是对用户最大的尊重。

    禁止弹出软键盘输入法

    代码:

    1

    2

    3

    <activity

        android:name=".MainActivity"

        android:windowSoftInputMode="stateHidden"/>

    发现用stateAlwaysHidden也可以禁止弹出软键盘

    1

    2

    3

    <activity

        android:name=".MainActivity"

        android:windowSoftInputMode="stateAlwaysHidden"/>

    stateHidden和stateAlwaysHidden的区别

    既然stateHidden和stateAlwaysHidden都可以实现禁止弹出软键盘,那这两者到底有什么区别呢?网上看很多人都说得不清不楚,还不如自己上Android官网看最权威

    发现官网的说明还是有点晦涩难懂的,我以我的理解说明下:

    • stateHidden:当用户进入Activity后保证是隐藏软键盘的,但是如果是从另一个页面返回该页面就不能保证了。比如说用户进入A页面,然后在输入框输入内容,未收起软键盘直接进入B页面,再从B页面返回A页面,此时A页面中软键盘还是显示的。又或者是用户由A页面进入B页面,在B页面弹出软键盘,未收起直接返回A页面,此时A页面中软键盘还是显示的。
    • stateAlwaysHidden:当用户刚进入Activity后软键盘也是隐藏的。与stateHidden的区别是,还是以上面的例子来说明,比如说用户进入A页面,然后在输入框输入内容,未收起软键盘直接进入B页面,再从B页面返回A页面,此时A页面中软键盘是收起来的。又或者是用户由A页面进入B页面,在B页面弹出软键盘,未收起直接返回A页面,此时A页面中软键盘是收起来的。

    代码中设置softInputMode

    当然,我们也可以在Activity的onCreate中设置softInputMode,如下代码所示,和在Manifest中设置是等价的

    1

    2

    3

    4

    // 等价于android:windowSoftInputMode="stateHidden"

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

    // 等价于android:windowSoftInputMode="stateAlwaysHidden"

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

  • 相关阅读:
    第 1 课 Python 的输出!
    linux设备模型:bus概念及pci_bus分析
    什么是Redis缓存 雪崩、穿透、击穿?【详解】
    Yukon 学习记录
    30 OpenCV 点多边形测试
    【综述精读】:Causal Inference in Recmmender Systems(因果推论在推荐系统中的应用)
    大数据挖掘企业服务平台-道路运输安全大数据分析解决方案
    一文了解SAAS开发、模板定制开发、全定制开发
    【jvm优化超详细】常见的JVM调优场景
    HTML5期末大作业:基于HTML+CSS+JavaScript茶文化中国水墨风格绿色茶叶销售(5页) 学生网页设计作业源码
  • 原文地址:https://blog.csdn.net/xiaowang_lj/article/details/134005399