Android软键盘弹出问题的解决方法

316人阅读 评论(0) 收藏 举报

当点击编辑框弹出软键盘时,如果不做处理,往往会遮住界面上的控件,这会降低用户体验。

解决方法1:
在你的activity中的oncreate中setContentView之前写上这个代码

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

解决方法2:
在项目的AndroidManifest.xml文件中界面对应的里加入,这样会让屏幕整体上移。如果加上的 是 android:windowSoftInputMode=”adjustPan”这样键盘就会覆盖屏幕。

<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >  

分析一下这个android:windowSoftInputMode属性
android:windowSoftInputMode
这个属性用于设置Activity主窗口与软键盘的交互模式,可以用来避免软键盘面板遮挡内容的问题。 这个属性能影响两件事:

当有焦点产生时,软键盘是隐藏还是显示
是否调整Activity主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state”值加一个”adjust”值的组合,各个值之间用 | 分开。

stateUnspecified:默认状态,系统将选择一个合适的状态或依赖于主题的设置。
stateUnchanged:当这个Activity出现时,软键盘将一直保持上一个Activity里的状态,无论是隐藏还是显示。
stateHidden:当这个Activity出现时,软键盘总是被隐藏。
stateAlwaysHidden:当这个Activity主窗口获取焦点时,软键盘总是被隐藏。
stateVisible:当这个Activity出现时(Activity中有可以获取输入焦点的控件),软键盘通常是可见的。
stateAlwaysVisible:当这个Activity出现时,软键盘总是弹出。
adjustUnspecified:默认行为,系统将根据窗口中的布局自动调整窗口大小。
adjustResize:这个Activity主窗口总是调整屏幕的大小以便留出软键盘的空间;这个选项不能和adjustPan同时使用,如果这两个属性都没有被设置,系统会根据窗口中的布局自动选择其中一个。
adjustPan:这个Activity主窗口并不调整屏幕的大小以便留出软键盘的空间;相反,当前窗口中获取输入焦点的控件会自动移动到软键盘上方以便用户总是能看到输入内容的部分;这个选项不能和adjustPan同时使用,如果这两个属性都没有被设置,系统会根据窗口中的布局自动选择其中一个。

关于软键盘的弹出与隐藏
contentEdit是控件
弹出软键盘:

InputMethodManager imm = (InputMethodManager) mContext
                        .getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(contentEdit, InputMethodManager.SHOW_FORCED);

隐藏软键盘:

InputMethodManager imm = (InputMethodManager) mContext
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(contentEdit.getWindowToken(), 0);
查看评论

4.8.一些杂散但值得讨论的问题

本课程零散讲了一些C语言中值得讨论的知识点。譬如main函数的传参和返回值、void类型、NULL宏定义、debug调试宏等。目的是进一步提升大家对C语言的理解深度,提升大家的实战编程能力。
  • 2015年10月22日 10:32

Android 软键盘弹出时把布局顶上去或者覆盖上去需求解决方案

方案一:当你在你的activity中的oncreate中setContentView之前写上这个代码以后,软键盘会覆盖在屏幕上面,而不会把你的布局顶上去。代码如下:getWindow().setSof...
  • lvshuchangyin
  • lvshuchangyin
  • 2017-06-28 09:09:48
  • 867

Android软键盘弹出和隐藏监听

  • 2016年04月14日 09:55
  • 3.8MB
  • 下载

转载2——Android软键盘弹出时把布局顶上去的解决方法

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

Android软键盘弹出遮挡EidtText的解决方法

最近遇到一个问题,当软键盘弹起的时候,针对不同的android机型,有的软键盘弹起会把edittext遮挡起来,不能把edittext推上去,很是蛋疼。 在Activity中设置:Andro...
  • u012301841
  • u012301841
  • 2015-03-12 22:47:13
  • 1044

Android软键盘弹出时把布局顶上去,控件乱套解决方法

修改AndroidManifest.xml File                    android:windowSoftInputMode="adjustPan|stateHidden"...
  • SzMinglove
  • SzMinglove
  • 2015-05-02 21:06:59
  • 7168

Android软键盘弹出遮盖原来界面的布局控件

给Activity设置软键盘出现与Activity之间的交互模式: 1.在onCreat中的setContent方法之前写入: [java] view plain copy...
  • qq_25749749
  • qq_25749749
  • 2018-01-22 12:06:15
  • 280

Android软键盘(四)软件盘弹出布局上移的问题(2)

第一种情况: 界面没有导致软键盘会自动弹出的ListView或者ScrollView,这时候去点击EditText或者通过代码手动调出键盘,这种情景下导致的布局上移。 解决方案: 在相应Activit...
  • sinat_31311947
  • sinat_31311947
  • 2016-12-22 23:21:52
  • 2303

Android软键盘弹出

一、先看在沉浸式模式中,什么都不处理的。只是添加2个EditText
  • birdfly12345
  • birdfly12345
  • 2017-05-08 10:10:25
  • 142

Android 软键盘控制弹出(很好使,自己写的,绝对能用)

最近在做电商类的项目,由于需求的不断变动,在有关输如文本框的地方,要求弹出软键盘,如果界面很多的下,则需要些很多代码,在空闲的时候,写了一个软键盘管理类,很好使,自己写的,亲自试过,这是一个软键盘控制...
  • androidstarjack
  • androidstarjack
  • 2015-06-17 15:17:43
  • 4093
    个人资料
    持之以恒
    等级:
    访问量: 10万+
    积分: 1547
    排名: 3万+
    文章分类
    最新评论