Android输入法挤乱布局问题

简介: Android输入法挤乱布局问题

android开发中总会莫名的遇到一些问题,例如有时候需要输入法把布局顶上去,有时候又希望输入法覆盖布局,我遇到的问题是输入法总是把布局顶上去,百度了好久都没解决,这里整理一下百度到的几种方式。还知道其他方式的请补充一下,谢谢。我的问题还没解决呢。


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

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


方法二:在项目的AndroidManifest.xml文件中界面对应的里加入

android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。如果加上

的是android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。


方法三:把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。


下面试一下百度的记录过程:

一进界面就隐藏输入法:

在AndroidManifest.xml中设置activity的android:windowSoftInputMode="stateHidden"

今天做布局的时候


嵌套的TbaleLayout里面有三行

但是准备输入的时候输入法自动将整个activity布局全部往上挤


导致输入框变小甚至消失

弄的很是郁闷


在网上查了之后 发现有些人是因为输入法调出后布局不动而烦恼

找到了解决方法


如果不想布局动(该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间)

在这个activity中的AndroidManifest.xml中加入代码

android:windowSoftInputMode="adjustPan"


还能解决软件盘关闭时黑一下的问题,大概是没给软键盘留空间吧

如果想让布局动 则加入代码

Android:windowSoftInputMode="stateVisible|adjustPan"


或者在你的activity中的oncreate中setContentView之前写上以下代码

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


还有一种方法 在对应的layout XML的顶级元素上加一层ScrollView

< ScrollView xmlns:Android="http://schemas.android.com/apk/res/android " 
        Android:layout_width="fill_parent" 
        Android:layout_height="fill_parent"> 
< /ScrollView>



在AndroidManifest.xml文件中的activity中设置 android:windowSoftInputMode属性

<activity 
android:windowSoftInputMode=
["stateUnspecified","stateUnchanged", "stateHidden","stateAlwaysHidden","stateVisible",
"stateAlwaysVisible","adjustUnspecified","adjustResize", "adjustPan"] …… >
</activity>


activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。


这个属性能影响两件事情:

【A】当有焦点产生时,软键盘是隐藏还是显示

【B】是否减少活动主窗口大小以便腾出空间放软键盘


各值的含义:


【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置


【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分



欢迎start,欢迎评论,欢迎指正



相关文章
|
4月前
|
Android开发
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
136 0
|
4月前
|
Android开发 容器
Android开发,学习LinearLayout布局
Android开发,学习LinearLayout布局
39 0
|
4月前
|
XML Java Android开发
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
45 0
|
4月前
|
XML Java Android开发
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
63 0
|
4月前
|
Android开发 容器
Android开发第二次课 布局方式
Android开发第二次课 布局方式
24 0
|
6月前
|
XML 前端开发 Android开发
android 前端常用布局文件升级总结(一)
android 前端常用布局文件升级总结(一)
|
8月前
|
Android开发
Android 使用DataBinding时 将布局页面转换为数据绑定布局(Convert to data binding layout) 不出现提示解决办法
Android 使用DataBinding时 将布局页面转换为数据绑定布局(Convert to data binding layout) 不出现提示解决办法
94 0
|
8月前
|
Android开发
Android 实现布局的缩小和再放大动画(使用scale动画效果进行实现)
Android 实现布局的缩小和再放大动画(使用scale动画效果进行实现)
587 0
|
8月前
|
XML Android开发 数据格式
Android XML 布局基础(八)帧布局 - GridLayout
Android XML 布局基础(八)帧布局 - GridLayout
92 0
|
8月前
|
XML Android开发 数据格式
Android XML 布局基础(七)帧布局 - FrameLayout
Android XML 布局基础(七)帧布局 - FrameLayout
54 0