Android软键盘(输入法)使用大杂烩:避免进入页面EditText自动弹出软键盘-2013.11.08更新

Android 解决沉浸式状态栏下,输入法弹出,布局不会自动调整的BUG 解决使用沉浸式状态栏时,输入法弹出,Activity的android:windowSoftInputMode属性设置为"adjustResize"无效,布局不会自动压缩调整。 阅读详情

有的时候当我们进入一个有EditText控件的界面时,会自动弹出软键盘,有的时候会给我们带来不便,有人说可以让EditText不获得焦点,虽然同样可以实现,但是我们有以下两个个更好的方式去实现这个效果。

一、代码中调用setSoftInputMode()方法进行设置:

OnCreate方法里面加下面这句代码,很管用,而且再点EditBox也能让输入法正常弹出。。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


二、在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用:

在AndroidManifest.xml文件中的activity节点下添加:android:windowSoftInputMode="stateHidden|adjustPan" 

stateHidden:是隐藏软键盘的

adjustPan:是保证控件不会因为输入法的弹出而发生形变的。


总之这2个方法都能实现避免进入页面EditText自动弹出软键盘,如果遇到其中一个不行就都试试吧,总有一个适合你。

——————————————————————我是分割线————————————————————————

插个题外话,我们可以使用InputMethodManager来管理软键盘:

我们通过InputMethodManager这个类来实现管理软键盘。我们需要控制软键盘的方式就是两种一个是像EditText那样当发生onClick事件的时候出现软键盘,还有就是当打开某个程序的时候自动的弹出软键盘。

[java]  view plain copy
  1. public class InputMethodManagerTest extends Activity implements OnClickListener{  
  2.     private Button button;  
  3.       
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         // TODO Auto-generated method stub  
  7.         super.onCreate(savedInstanceState);  
  8.         LinearLayout layout=new LinearLayout(this);  
  9.         LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);  
  10.         button=new Button(this);  
  11.         button.setId(123);  
  12.         button.setText("Hello GaoMatrix");  
  13.         button.setOnClickListener(this);  
  14.         layout.addView(button, layoutParams);  
  15.         setContentView(layout);  
  16.           
  17.         /** 
  18.          * 用一个定时器控制当打开这个Activity的时候就出现软键盘 
  19.          */  
  20.         Timer timer=new Timer();  
  21.         timer.schedule(new TimerTask() {  
  22.             @Override  
  23.             public void run() {  
  24.                 InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  25.                 inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
  26.             }  
  27.         }, 2000);  
  28.     }  
  29.     /** 
  30.      * 当单击事件的时候触发显示软键盘 
  31.      */  
  32.     @Override  
  33.     public void onClick(View v) {  
  34.         InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  35.         inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
  36.     }  
  37. }  
 

这个InputMethodManager类里面的toggleSoftInput方法的API中的解释是:

This method toggles the input method window display. If the input window is already displayed, it gets hidden. If not the input window will be displayed.

这个方法在界面上切换输入法的功能,如果输入法出于现实状态,就将他隐藏,如果处于隐藏状态,就显示输入法。

而对于第二种方式进入Activity就自动显示软键盘,在一个定时器中,也就是在一个线程中执行,只不过是延迟2秒执行,原因是在onCreate函数中Android程序未将屏幕绘制完成。

——————————————————————我是分割线————————————————————————

10.29补充:

调用下面代码:(第一次调用显示,再次调用则隐藏,如此反复),this指activity

[java]  view plain copy
  1. InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
  3. imm.showSoftInput(myview, InputMethodManager.SHOW_IMPLICIT);  

 

单独显示隐藏软键盘:

显示:

[java]  view plain copy
  1. InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.showSoftInput(myview, 0);  

隐藏:

[java]  view plain copy
  1. imm.hideSoftInputFromWindow(view.getWindowToken(), 0);  

——————————————————————我是分割线————————————————————————

2013.11.08更新:

发现个问题,有的时候在其他页面弹出了输入法,在返回到前一个activity的时候输入法没有消失。一般这种问题可以在上个页面

在destory方法调用

  1. imm.hideSoftInputFromWindow(view.getWindowToken(), 0);  
来解决。

但是我碰到的时候webview调用了输入法,我无法获取到webview页面的view,所以上面那个方法就无效了。这个时候可以使用下面这个方法。

  1. getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
在onresume()方法中使用!

从0到1做AI漫剧:即梦+豆包+剪映+红果全流程实战 AI视频生成正在重塑内容创作的生产方式,它让原本高门槛的影视制作,变成了一条由文本、画面、剪辑与分发环节协同的流水线。理解其底层原理,在于将大模型的语义理解、图像生成与视频合成能力,与工程化的流程管理相结合,从而实现从创意到成片的自动化输出。这种技术的价值,不仅体现在降低制作成本,更在于让个人创作者能够独立完成高质量短剧,并快速迭代内容。在短剧、短视频、广告营销等场景中,利用即梦生成画面、豆包编写剧本、剪映完成剪辑、红果进行分发的组合,已成为一种被广泛验证的实践路径。本文聚焦AI漫剧制作,从环境准备、分镜设 阅读详情

相关推荐

保姆级教程:在mmdetection中手动计算并可视化P、R、F1值(附完整代码)

本文提供了一份详细的mmdetection教程,指导开发者如何手动计算并可视化精确率(P)、召回率(R)和F1值。通过完整的代码示例和清晰的步骤说明,帮助用户深入理解目标检测模型的性能评估方法,特别适合需要精细分析模型表现的计算机视觉研究人员和工程师。

weixin_29038303的博客 401

Android让页面默认弹出输入法的问题

看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的时候默认弹出输入法,可以这样设置这个属相:android:windowSoftInputMode=stateVisible,这样就会默认弹起输入法,当然还有别的办法。                   android:configChanges="orientation|keyboar

学习记录 8413

SAP生产版本导入避坑大全:从‘黄灯’到‘绿灯’,详解CM_FV_MKAL_CONSISTENCY_CHECK检查函数

本文深入解析SAP生产版本导入过程中的常见问题,特别是通过`CM_FV_MKAL_CONSISTENCY_CHECK`检查函数从‘黄灯’异常到‘绿灯’正常的修复方法。涵盖静态与动态校验机制、典型异常场景诊断及批量导入最佳实践,帮助SAP运维人员高效解决生产版本管理难题。

weixin_30568591的博客 389

Android处理软键盘弹出问题和键盘表情切换问题

软键盘可能引发的问题: 键盘弹出,可能会挤压页面中的布局和view,导致页面显示不可控,尤其是当页面设置了各种主题的时候,更加不可控制; 处理软键盘和表情键盘切换,很容易造成切换生硬,有闪烁的问题; 传统解决方案的缺陷: 网上有很多解决方案,大多都是设置 android:windowSoftInputMode="adjustResize|stateHidden",并把输入框靠近底部,这样就能通过窗口自适应把相应的输入控件挤上去,而且可以通过布局变化监听到软键盘弹出和消失事件,方便处理回调; 关.

qq_23992393的博客 1286

告别信号干扰!用Altium Designer 19搞定4层/6层PCB叠层设计的保姆级流程

本文详细介绍了如何使用Altium Designer 19进行4层/6层PCB叠层设计,解决信号干扰问题。通过实际案例和系统方法论,涵盖高速数字电路、混合信号系统等典型场景的设计优化,帮助硬件工程师和学生掌握电磁兼容(EMC)与信号完整性(SI)的核心技术。

weixin_27076351的博客 207

手把手教你调试RTL8201F:从芯片手册解读到LWIP驱动移植

本文详细解析了RTL8201F PHY芯片的开发流程,从寄存器配置到LWIP驱动移植,重点介绍了RMII模式下的特殊配置要点和调试技巧。通过实战案例和高级调试方法,帮助工程师解决网络性能问题,实现与FreeRTOS+LWIP协议栈的稳定集成。

ik678901234的博客 972

android防止刚打开Activity就弹出输入法或输入法挤走底边栏

若Activity中含有EditText控件,如果没有做特别的调整,那么每次进入该Activity,EditText空间都会自动获取脚垫,然后弹出虚拟的键盘,使页面变得拥挤。Android这样设计的目的可能是为了减少用户点击屏幕的次数,所以默认是这样。但是有些需求,并不是一进入Acticity就要弹出键盘,例如QQ的聊天页面 1.在Activity的onCreate()方法中添加如下:    ...

kathlon的专栏 1092

金融科技风险管理实践之监管评级全解

内部审计是公司治理的四大基石之一。因此,建议银行以问题与结果为导向,推动科技风险分级分类管理,重点防范重大中断、重大事件,并进一步加强科技风险评估与监测,加强对重要管理流程、重要系统、网络等重点管控环节的评估监测,对于评估发现的问题,及时完善管理手段,举一反三解决问题,提高风险管理的有效性。投入更多审计资源,加大对重点机构、薄弱环节、重要领域的审计力度,如:加强对境外机构的审计,加强网络安全、数据安全、业务连续性等高风险领域审计,加强数字化转型过程中的风险审计,以高水平安全,为数字金融高质量发展保驾护航。

银行信息系统应用架构详解 455

UIWebView中输入框不能弹出键盘的解决方案

最近在状态栏上面加提示信息(view),开始采用隐藏状态栏方法,但这样有一个问题会造成视图往上移动,被加在状态栏位置的view遮盖掉;后来将view加到keyWindow上面,关键代码如下: [[UIApplication sharedApplication].keyWindow setWindowLevel:UIWindowLevelStatusBar];     UIView

pjk1129专栏 6226

【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part6基于图谱的问答实现

前序文章:本部分则是整个项目的核心内容——基于图谱的问答。需要实现的是对于“简单问题”进行解析,然后从图谱数据库中查询与该人员及其相关人员信息,返回到前端并显示该人员的基本信息。除此之外,用户可以点击返回的结果人员节点,页面能够显示该用户的个人基本信息。那么现在就开始吧。根据源码实现问答形式,其实是比较简单的。原代码中使用ltp对问题进行分词,选取具有名次词性的关键词进行处理。 ltp配置稍许麻烦,我使用jieba分词工具对问题进行分词,然后再按照原文提取问句中人物及关系,然后构建cypher neo4j查

让算法融入生活,改变生活! 2938

内容创作全流程自动化:OpenClaw+大模型搞定选题+写稿+多平台发布

本文介绍了一套基于OpenClaw的全自动化内容创作流水线方案,帮助垂直领域创作者摆脱重复劳动。该方案将内容生产拆解为选题生成、内容撰写、格式适配、多平台发布四个模块,通过工作流引擎串联执行。系统能自动采集热榜生成选题、调用大模型撰写结构化内容、适配不同平台格式要求,并通过API+浏览器自动化实现多平台发布,全程只需人工最终审核。作者分享了各模块的实现细节,包括热榜采集、内容结构化生成、Markdown转换和发布策略,并提供了工作流编排方法。这套方案能为创作者每天节省约3小时,同时保证内容质量和发布效率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 49

android webview点击input不弹出输入法解决方案

android webview点击input不弹出输入法解决方案

JokAr 4390

C语言实现惯导更新算法(机械编排)

四元数可用于描述刚体转动或姿态变换,与方向余弦阵相比,表达简洁。四元数是一个包含四个元素的列向量,列向量的第一个元素表示刚体围绕旋转轴转过的角度大小,其余3个元素代表了旋转轴的方向。

十八与她的博客 1730

安卓:Webview不弹出输入法的解决方法

安卓:Webview不弹出输入法的解决方法

weixin_46020146的博客 629

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

安卓手机软键盘弹出后不响应onKeyDown、onBackPressed方法解决方案

解决软键盘弹出后按下Back按键不响应onKeyDown、onBackPressed方法

wuyinlei的博客 3768

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android安卓RecycleView里添加EditText,点击EditText后弹出软键盘组件消失问题

问题: 在RecycleView的adapter里添加的xml里有EditText组件,奇怪的时每次点击EditText弹出软键盘后,EditText组件就消失了。 解决办法: 在RecycleView的外面再套一层layout (RelativeLayout LinearLayout,或者 ConstraintLayout 都可以) 具体发生机制不太明白,可能是RecycleView的adapter没有及时刷新UI? 有大佬可以指点下吗?谢谢 ...

ruiruiddd的博客 845

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android 设置输入法[软键盘]将底部布局推上去

效果 说明: 1适用范围Android 6.0(23)及以上,Android 5.0标题栏不太适配,看注释 2.也可以使用popwindow来实现,晚上很多例子了 操作如下 1.设置Manifest中Activtiy的theme属性如下: <activity android:name=".ui.CommentsActivity" android:theme="@style/search_edit" > <intent

风吹草低见牛羊 1262

解决自动弹出软键盘问题

0.0发现了一个很烦人的问题,一进主页自动弹出软键盘解决方法:AndroidMainifest-对应的activity下设置 android:windowSoftInputMode="stateHidden|stateUnchanged"

qq_28598739的博客 1587

Android中EditText点击获得焦点后无法显示输入法键盘

【背景】 android中EditText的Enable已经设置为True了,表示可以被编辑, 但是点击输入框,获得焦点后,无法显示输入法,导致无法输入内容。 比如: Descriptor的值是EditText 之前已经设置为可编辑了: ? 1 2 EditText variableValueView =

Dream It Possible 2万+

Android程序中的输入法控制

一、打开输入法窗口: InputMethodManager  imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // 接受软键盘输入的编辑文本或其它视图 imm.showSoftInput(submitBt,InputMethodManager.SHOW_FORCED); 二、关闭出入法窗

haho的专栏 792

Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)

在个别时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘。网上常见的方法有:1、 InputMethodManager imm = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftI

yanzi1225627的专栏 3万+

android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据

为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码! 点击浏览器中的URL链接,启动特定的App。 首先做成HTML的页面,页面内容格式如下: a href="[scheme]://[host]/[path]?[query]">启动应用程序a> 这一句就可以了。   各个项目含义如下所示: scheme:判

极客公园 15万+

关于StringIndexOutOfBoundsException那些事~

今天做截取字符串操作时遇到了这样的问题: 10-12 10:51:54.654: E/AndroidRuntime(31917): Caused by: java.lang.StringIndexOutOfBoundsException: length=16760; regionStart=8325; regionLength=8492 看到IndexOutOfBoundsExcepti

极客公园 3万+

关于VideoView无法监听视频播放时缓冲或者卡顿状态的解决办法

首先在android使用系统自带播放器有三种实现方式: 1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。   2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。   3、使用MediaPlayer类和SurfaceView来实现。这种方

极客公园 2万+

Error: WebView.destroy() called while still attached 的解决办法

今天在改Webview页面的时候出现了闪退。看Log发现是这个问题Error: WebView.destroy() called while still attached。 谷歌了一下。发现只有stackoverflow解释这个问题比较清楚,另外鄙视下百度,啥都搜不到。不过一些问题能用中文描述的,还是百度相关内容比较多。 现在总结下这个问题的解决办法。先大概解释下这个错误,这个

极客公园 1万+
上一篇: Android读取AndroidManifest.xml中的<meta-data>元素
下一篇: Gallery is deprecated:Gallery 过期了怎么办?(一)
极客公园
博客等级 码龄15年 45粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值