Android 进入Activity禁止弹出软键盘输入法及stateHidden和stateAlwaysHidden的区别
在开发中经常会遇到这样的问题,进入一个含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的区别相关推荐
- android 键盘 自动消失,Android EditText点击弹出软键盘点击外部消失
在Activity中: @Override public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { ...
- Android --- 进入页面时,不弹出软键盘。当 EditText 被点击时不弹出软键盘,而是调用其他选择器,比如时间选择器等
功能需求: 1.进入页面时,不弹出软键盘 2.当 EditText 被点击时不弹出软键盘,而是调用其他选择器,比如时间选择器等 搜索百度测试: 1.百度上说用 editText.setInputTyp ...
- Android中的EditText默认时不弹出软键盘的方法
在做项目过程中 , 父 Activity 中 用 ViewPager 中 的子 ActivityEditText默认弹出软键盘.这是想屏蔽 软键盘 应该从父 Activity 中处理.处理子 Acti ...
- android仿微信、QQ等聊天界面,实现点击输入框弹出软键盘、点击其他区域收起软键盘,默认滑动至最低端
如图所示,点击输入框及选择图片和发送按钮时软键盘显示且不消失,点击其他区域,则隐藏软键盘. 主要代码如下: override fun dispatchTouchEvent(ev: MotionEven ...
- android 键盘将底部视图顶起,android 弹出软键盘将底部视图顶起问题
今天要做一个搜索功能,搜索界面采用AutoCompleteTextView做搜索条,然后下面用listview来显示搜索结果,而我的主界面是在底 部用tab做了一个主界面导航,其中有一个搜索按钮,因为 ...
- Android EditText获取焦点后只显示光标不弹出软键盘
Android EditText获取焦点后只显示光标不弹出软键盘 参考博客链接 直接说结论 如果你项目适配的最小版本大于等于21 //直接调用EditText的该方法,设置为false即可 bindi ...
- android动态设置软键盘弹出模式,Android 弹出软键盘所遇到的坑及解决方法
重要代码: //1.此layout作为最外层的layout: //2.设置需要调整的view: setAdjustView(View view); //3.如果需要控制输入框的显示与隐藏,可以实现On ...
- Android 弹出软键盘(输入法)
1.弹出软键盘(输入法). /*** 显示软键盘(输入法)* * @param activity* @param editText*/public static void showInputMetho ...
- android 软键盘工具类,Android开发之弹出软键盘工具类简单示例
本文实例讲述了Android开发之弹出软键盘工具类.分享给大家供大家参考,具体如下: package com.maobang.imsdk.util; import android.content.Co ...
最新文章
- 1030 完美数列(two pointers解法)
- php 时间操作归类
- 制作vb dll的总结
- c语言printf到指定文件,急求如何将下列C语言程序数据存储到文件中?
- 开课吧:深入了解软件开发原则有哪些?
- jsonp 使用选择器
- echo命令的15个用法
- 【最全】latex与word之间的各种转化方法和软件汇总
- Matla + SVD 求解变换矩阵
- 怎么看linux Java版本,查看linux的java版本信息
- 解决WSL2报错(请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化[已退出进程,代码为 4294967295])
- Qt 音乐盒子(在线搜索下载+本地读取播放)
- QT去除控件被选中后的焦点虚线框
- JAVA——eclipes的下载步骤
- ECB(实体边界控制)模式
- 正味集团冲刺港股:年营收3.4亿杨声耀夫妇控制64%股权
- oracle 幻影读,索引+事务
- 为什么说vivo S7才是5G轻薄旗舰的正确打开方式
- Elasticsearch中的评分排序--Function score query
- 微信小商店怎么开通?怎么装修?如何开启订单打印?