android软键盘挡
1. 怎么把android软键盘把布局顶上去
在EditText控件接近底部的情况下,软键盘弹出后会把获得焦点的EditText控件遮挡,无法看到输入信息,防止这样的情况发生,就需要设置AndroidManifest.xml的属性:
前面的xml信息省略
在activity中 增加android:windowSoftInputMode="adjustPan"
<activity
..
android:windowSoftInputMode="adjustPan"
>
</activity>
弹出软键盘以后,软键盘会把EditText推上去。
2. android中怎么调试软键盘遮挡的问题
问题概述
在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图:
输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示:
输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决?
简单解决方案
方法一
在你的activity中的oncreate中setContentView之前写上这个代码
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二
在 项目的AndroidManifest.xml文件中界面对应的<activity>里加入
这样会让屏幕整体上移。如果加上的 是 android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。
关于android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。
例如:
<activityandroid:windowSoftInputMode="stateVisible|adjustResize". . . >
在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值
方法三
把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。
代码可控性方法
1、主界面布局文件
2、自定义LinearLayoutView
该组件可实现根据软键盘的弹出/关闭而隐藏和显示某些区域,这是问题解决最关键部分,主要有两点:
① 重写onSizeChanged方法
该方法是View生命周期的方法,当View尺寸发生变化时调用,如竖屏横屏切换、软键盘弹出。这里当软键盘弹出造成View尺寸改变,就会调用onSizeChanged方法,在该方法实现代码的核心思想是根据尺寸变化,当变大(软键盘弹出),将某些区域隐藏以给编辑界面预留出足够显示空间;当恢复(软键盘关闭),再将隐藏的区域显示出来
②提供KeyBordStateListener 接口采用回调机制调用接口的实现方法。
3.主界面MainActivit
实现效果
键盘弹出:
键盘关闭:
3. android 怎么让布局在软键盘之上
在EditText控件接近底部的情况下,软键盘弹出后会把获得焦点的EditText控件遮挡,无法看到输入信息,防止这样的情况发生,就需要设置AndroidManifest.xml的属性:前面的xml信息省略在activity中增加android:windowSoftInputMode="adjustPan"弹出软键盘以后,软键盘会把EditText推上去。
4. EditText弹出软键盘遮住输入框问题
如果在Activity中的布局的下方有EditText,获取焦点弹出软键盘的时候,如果不做处理,软键盘可能会遮挡输入框,用户提现不好,网上也有很多人提出结局方案,这里就分析一下解决的效果.
需要用到EditText的布局大概分为两种,一种是页面显示的内容不希望有残缺,比如软键盘把标题挤出了屏幕,如登录注册搜索等,EditText多半在页面上半部分.另一种是页面的上半部分不重要,比如聊天窗口,软键盘弹出的时候,上半部分的聊天记录可以被基础屏幕外,EditText多半在最下方.其他的情况可以根据本文做出选择, 结果在最下面 .
开始:
网上针对这个问题解决的方法大概这么几种:
1.修改AndroidManifest.xml文件.
2.在Activity中添加配置.
3.在布局文件中添加ScrollVie.
在AndroidManifest.xml中对应的Activity配置: android:windowSoftInputMode="stateVisible|adjustResize"
这里SOFT_INPUT_ADJUST_RESIZE和SOFT_INPUT_ADJUST_PAN和上面中的adjustResize和adjustPan效果是一样的.
ScrollView是能让弹出的软键盘添加到布局的下面,从而不挡住部分布局.这里往往需要跟上面的adjustResize和adjustPan两个状态一起用.
布局:
向上移的方式 设置:
压缩的方式 设置:
结果:
只要弹出软键盘会影响到布局的情况,都用ScrollView把布局包裹起来,被包裹的内容就是可能被缩放或挤出屏幕外的内容.然后根据EditText的位置判断用adjustResize还是用adjustPan.
adjustResize是收缩adjustPan是向上挤
个人推荐,登录注册用adjustResize,聊天窗口用adjustPan
5. Android WebView加载页面的输入框被软键盘遮挡的问题
当实现沉浸式状态栏时遇到软件盘遮挡WebView页面的输入框的问题,这是实现方式有问题,应该检查你的实现方式。
1)加载WebView的Activty不能设置为全屏模式,即Theme.NoTitleBar.Fullscreen,可以使用Theme.Holo.Light.NoActionBar
2)沉浸式状态栏的实现方式,在Activity的根布局里加两个属性:
android:clipToPadding="true" 设置你的绘制区域在padding里面
android:fitsSystemWindows="true" 调整view的padding属性为系统窗口 留出空间
在Activity的onCreate方法里面设置标题栏为透明,即:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_ST ATUS);
3)Activity里面不能设置android:windowSoftInputMode的属性,使用默认的属性即可
以上3步即可实现沉浸式状态栏并且能保证你的WebView加载的HTML页面的输入框不被软键盘遮挡。
顶
0
踩
0
上一篇 Android Studio在SVN上创建分支
下一篇 Android Converty问题解决方案
相关文章推荐
• android中webview加载html输入框不能输入内容问题记录
• 如何解决Android软键盘盖住输入框的问题
• Android 软键盘盖住输入框的问题
• Android 软键盘盖住输入框的问题
• Android 软键盘盖住输入框的问题
• Android 软键盘盖住输入框的问题
• Android 软键盘盖住输入框的问题
• android popupwindow 中输入框被软键盘弹出挡住问题解决
• ios解决软键盘遮挡输入框问题
• Android软键盘遮挡输入框解决方法
参考知识库
Android知识库
34080 关注 | 2937 收录
猜你在找
Android中的五大布局
零基础学软件之HTML语言
【Android APP开发】Android高级商业布局快速实现
html5的app开发
Android前沿技术—《软件框架搭建》
Android移植基础
html系统学习篇
零基础学习HTML5—html+css基础
Android开发之初窥门径
Android之数据存储
关闭
6. 如何设置Android软键盘的默认不弹出
如何设置Android软键盘的默认不弹出?
在开发Anroid的时候,当你打开一个界面的时候,屏幕的焦点会自动停留在第一个EditText中,Android的软键盘默认会自动弹出,用户第一眼连界面都没有看清楚,软键盘就弹出来了,这就影响到了用户体验,我们需要设置打开界面的时候,当EditText获取焦点的时候,不弹出软键盘,其实也很简单,代码如下:
// 默认软键盘不弹出 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
在OnCreate()函数中,加上即可,OK,搞定。