软键盘挤压布局的问题

时间:2021-12-26 00:35:33

本人入门级菜鸟,希望大家多多交流,也希望能帮到大家!

今天给一个项目加水平传感器,这个没什么难度,但是要同时传递参数,那么就需要在弹出的对话框中设置输入框,遇到一个问题

当输入框获得焦点的时候会将整个布局顶上去,或者覆盖输入框,覆盖输入框这个问题我相信很多人百度一下就可以解决了,但是一般情况下我们为了屏幕适配等问题,都会用到权重,那么输入法弹出的同时就会将整个布局顶上去

我们公司就我 一个菜鸟Android,没有大牛带,所以自己摸索了一天,把关于输入法的这块研究了一小部分,解决了这个问题,分享给大家,不废话了,上代码


android:windowSoftInputMode="stateHidden|adjustPan|adjustResize"


解释一下:

android:windowSoftInputMode="adjustResize"//输入法挡住编辑框的方案

android:windowSoftInputMode="adjustPan"     //保持布局的方案

以下是从网上一位大神处转的关于判断是否弹出

网址没记住,大神原谅!

//判断输入法是否弹出

if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

//隐藏输入法

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

//弹出输入法

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);


//一般大多遇到的情况都是在Activity中直接用输入法

android:windowSoftInputMode="stateHidden|adjustPan //保持布局

android:windowSoftInputMode="stateHidden|adjustResize" //不会遮挡输入框

当然,前面的设置隐藏根据情况而定,也可以不要

希望能帮到大家,谢谢!