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

废话这么多,直接上代码

<activityandroid:name=".MainActivity"android:windowSoftInputMode="stateHidden"/>

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

<activityandroid:name=".MainActivity"android:windowSoftInputMode="stateAlwaysHidden"/>

stateHidden和stateAlwaysHidden的区别

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

"stateHidden" The soft keyboard is hidden when the user chooses the activity — that is, when the user affirmatively navigates forward to the activity, rather than backs into it because of leaving another activity.
"stateAlwaysHidden" The soft keyboard is always hidden when the activity's main window has input focus.

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

  • 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中设置是等价的

// 等价于android:windowSoftInputMode="stateHidden"
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
// 等价于android:windowSoftInputMode="stateAlwaysHidden"
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Android 进入Activity禁止弹出软键盘输入法及stateHidden和stateAlwaysHidden的区别相关推荐

  1. android 键盘 自动消失,Android EditText点击弹出软键盘点击外部消失

    在Activity中: @Override public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { ...

  2. Android --- 进入页面时,不弹出软键盘。当 EditText 被点击时不弹出软键盘,而是调用其他选择器,比如时间选择器等

    功能需求: 1.进入页面时,不弹出软键盘 2.当 EditText 被点击时不弹出软键盘,而是调用其他选择器,比如时间选择器等 搜索百度测试: 1.百度上说用 editText.setInputTyp ...

  3. Android中的EditText默认时不弹出软键盘的方法

    在做项目过程中 , 父 Activity 中 用 ViewPager 中 的子 ActivityEditText默认弹出软键盘.这是想屏蔽 软键盘 应该从父 Activity 中处理.处理子 Acti ...

  4. android仿微信、QQ等聊天界面,实现点击输入框弹出软键盘、点击其他区域收起软键盘,默认滑动至最低端

    如图所示,点击输入框及选择图片和发送按钮时软键盘显示且不消失,点击其他区域,则隐藏软键盘. 主要代码如下: override fun dispatchTouchEvent(ev: MotionEven ...

  5. android 键盘将底部视图顶起,android 弹出软键盘将底部视图顶起问题

    今天要做一个搜索功能,搜索界面采用AutoCompleteTextView做搜索条,然后下面用listview来显示搜索结果,而我的主界面是在底 部用tab做了一个主界面导航,其中有一个搜索按钮,因为 ...

  6. Android EditText获取焦点后只显示光标不弹出软键盘

    Android EditText获取焦点后只显示光标不弹出软键盘 参考博客链接 直接说结论 如果你项目适配的最小版本大于等于21 //直接调用EditText的该方法,设置为false即可 bindi ...

  7. android动态设置软键盘弹出模式,Android 弹出软键盘所遇到的坑及解决方法

    重要代码: //1.此layout作为最外层的layout: //2.设置需要调整的view: setAdjustView(View view); //3.如果需要控制输入框的显示与隐藏,可以实现On ...

  8. Android 弹出软键盘(输入法)

    1.弹出软键盘(输入法). /*** 显示软键盘(输入法)* * @param activity* @param editText*/public static void showInputMetho ...

  9. android 软键盘工具类,Android开发之弹出软键盘工具类简单示例

    本文实例讲述了Android开发之弹出软键盘工具类.分享给大家供大家参考,具体如下: package com.maobang.imsdk.util; import android.content.Co ...

最新文章

  1. 1030 完美数列(two pointers解法)
  2. php 时间操作归类
  3. 制作vb dll的总结
  4. c语言printf到指定文件,急求如何将下列C语言程序数据存储到文件中?
  5. 开课吧:深入了解软件开发原则有哪些?
  6. jsonp 使用选择器
  7. echo命令的15个用法
  8. 【最全】latex与word之间的各种转化方法和软件汇总
  9. Matla + SVD 求解变换矩阵
  10. 怎么看linux Java版本,查看linux的java版本信息
  11. 解决WSL2报错(请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化[已退出进程,代码为 4294967295])
  12. Qt 音乐盒子(在线搜索下载+本地读取播放)
  13. QT去除控件被选中后的焦点虚线框
  14. JAVA——eclipes的下载步骤
  15. ECB(实体边界控制)模式
  16. 正味集团冲刺港股:年营收3.4亿杨声耀夫妇控制64%股权
  17. oracle 幻影读,索引+事务
  18. 为什么说vivo S7才是5G轻薄旗舰的正确打开方式
  19. Elasticsearch中的评分排序--Function score query
  20. 微信小商店怎么开通?怎么装修?如何开启订单打印?

热门文章

  1. sat2 计算机科目,干货丨你知道SAT2如何选择科目吗?
  2. 监控摄像机选型攻略之全天候机型选用
  3. Ubuntu20.04安装docker简易教程
  4. Confluence集成实践:2:Confluence的RestAPI
  5. java中for循环嵌套_Java中的for循环嵌套
  6. vue $refs 的使用 传值
  7. 中国历史上的豪言壮语之先秦篇
  8. 简单递归题,核反应堆中有α和β两种粒子...
  9. 用certutil 注册根证书到nss/firefox
  10. VBA代码实现批量合并同一个文件夹下的所有Excel表