在Android开发中,比较头疼的问题就是EditText总是已启动就获得焦点并弹出输入框,感觉很是不爽。而且,因为输入框的弹出,导致屏幕布局获得改变,有些空间被挤压到一起,很是难看,所以,我就上网搜了一下如何解决这些问题,终于找到了问题所在,并且顺利的解决了问题。

问题的原因是没有在 AndroidManifest.xml  文件中进行设置。不过该要设置什么属性呢?

需要设置的属性是:android:windowSoftInputMode

描述

"stateUnspecified"

软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。

这个是为了软件盘行为默认的设置。

"stateUnchanged"

软键盘被保持无论它上次是什么状态,是否可见或隐藏,当主窗口出现在前面时。

"stateHidden"

当用户选择该Activity时,软键盘被隐藏——也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。

"stateAlwaysHidden"

软键盘总是被隐藏的,当该Activity主窗口获取焦点时。

"stateVisible"

软键盘是可见的,当那个是正常合适的时(当用户导航到Activity主窗口时)。

"stateAlwaysVisible"

当用户选择这个Activity时,软键盘是可见的——也就是,也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。

"adjustUnspecified"

它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。

"adjustResize"

该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间

"adjustPan"

该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。

可以设置的值为表格中的内容,不过为了解决那两个问题,我们需要的是其中的两个值("stateHidden","adjustPan"),按照上面表格的介绍,这来那个属性值可以使Activity启动时,就算EditText获得焦点时,软键盘处于隐藏的状态,并不会弹出,解决了其中的一个问题。而且,adjustPan 值可以调整软键盘出现时的屏幕内容,简单的说就是软键盘覆盖了屏幕内容,处于屏幕的上方,并不会改变布局,有着比较良好的用户体验。

为了解决EditText问题时,曾经让EdittText中的属性android:focusable="false"来进行设置,不过当然失败了,它的后果是让EditText不能获得焦点,连输入也不可以了。所以,这种解决方法是不可以的。

关于软键盘弹出问题的深入研究,我把从网上找到的资料分享一下,因为我没有进行这方面的研究,所以也没有深入,有兴趣的大家可以自己去了解一下。

链接:http://url.cn/fAmiqy

原文转自:http://blog.csdn.net/ProgramChangesWorld/article/details/44875881?locationNum=12&fps=1

Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题相关推荐

  1. Android开发中EditText:一、属性详解

    在android开发中,EditText组件是一个常用控件,也是一个比较重要的组件,它的基本属性需要熟练使用才行,接下来就来讲一下在Android开发中EditText组件的基本使用. 一.基本属性 ...

  2. android弹出输入框不影响布局,android 输入法弹出后,不影响activity原有布局

    android输入法弹出框有时会遮挡原有的布局,使得输入法弹出框弹出时,原布局消失,现介绍android:windowSoftInputMode的一些属性: 在AndroidManifest.xml文 ...

  3. edittext 选中焦点在最后_安卓开发中EditText的焦点改变处理(获取焦点和失去焦点交互变化)...

    在安卓项目开发中,我们经常会遇到一些对EditText的处理问题,包括对EditText的焦点的改变,我们需要结合实际情况对其进行获得焦点,打开输入法和失去焦点,关闭输入法的交互操作. 我在这里介绍一 ...

  4. android edittext 输入法表情,Android开发中EditText禁止输入Emoji表情符

    在开发中可能多处会用到过滤Emoji表情符,一般情况下,我们会通过EditText的addTextChangedListener()监听来过滤Emoji表情,但在实际开发中会遇到多个EditText, ...

  5. Android开发- 点击按钮旁弹出选择框

    示例: 一.代码部分: 1.弹出框页面布局(layout/pop_mesure_layout.xml) <!--LinearLayout不能设置背景颜色--> <LinearLayo ...

  6. Android实践-自定义dialog从屏幕底部弹出并且充满屏幕宽度

    转载出处http://blog.csdn.net/nugongahou110 通常我们使用dialog的时候会遇到一些问题,比如我想用自己定义的布局来替代系统那个黑乎乎的布局时我要怎么做?我想要指定d ...

  7. android开发中EditText自动获取焦点时隐藏hint的代码

    只需让EditText设置以下的OnFocusChangeListener就可以了 private OnFocusChangeListener mOnFocusChangeListener = new ...

  8. Android开发中Edittext设置密码显示隐藏的多种方法

    第一种方法: editText= (EditText) findViewById(R.id.password); button= (Button) findViewById(R.id.change); ...

  9. android 键盘遮盖输入框_android弹出输入框,软键盘挡住部分编辑框

    公司要做一款类似微信的即时通讯app 现有如下需求: 当edittext获取到焦点,弹出输入框,并且将listview(recyclerview)顶上去 类似微信QQ的效果,如下图所示 editTex ...

最新文章

  1. 7.Odoo产品分析 (二) – 商业板块(3) –CRM(1)
  2. 研究生第一篇科研论文常犯问题总结
  3. webbench源码解析
  4. 重装vcenter后恢复原来制作的模板!
  5. LeetCode 605 种花问题
  6. CentOS中一些基本的操作记录
  7. echarts 柱状图点击事件
  8. Louvain 算法原理及设计实现
  9. VB/VBA之死,何时休?
  10. 【VRP问题】基于蚁群算法求解带时间窗车辆调度问题
  11. ansiblea基本使用
  12. 互联网经典商战TOP 10
  13. 打造零售数据中台 数澜助百果园数字化转型
  14. 王垠:完全用Linux工作及其后续
  15. Volatility工具使用
  16. Windows里下载并安装phpstudy(图文详解)
  17. 爱测未来安全-浅淡流量劫持及应对措施
  18. 一道面试题:StringBuffer a=new StringBuffer (A); StringBuffer b=new StringBuffer
  19. 最小的K个数(手写大顶堆和用优先级队列比较)
  20. 2万元起步 大四学生炒房资产达500万元

热门文章

  1. pythonandroid自动化测试仪器_使用Python进行Android自动化测试
  2. ​30种EMC标准电路分享,再不收藏就晚了!
  3. 老工程师谈电子物料:别拿一分钱不当回事!
  4. 快讯|MIT遥控机器人;日本推出带摄像头的智能AI马桶;德国在线零售商Zalando引进拣货机器人等...
  5. 哇,居然可以用这种烙铁头拆元器件!!!
  6. java arcgis server_ArcGIS Server Java 开发实战---自定义command
  7. 如何把图片转为html,如何将原始十六进制图像转换为html图像
  8. java 防止反射_Java设计模式(一):单例模式,防止反射和反序列化漏洞
  9. 关系式调用c语言脚本_认识LoadRunner脚本语言
  10. python 画布 保存_Python Tkinter使用PIL将画布保存为图像