android获取软键盘的高度
Ⅰ 如何在Android中判断软键盘是否弹出或隐藏
java">Android中判断软键盘是否弹出或隐藏可以借助软键盘显示和隐藏时,对主窗口进行了重新布局这个特性来进行侦听。如果我们设置的模式为压缩模式,那么我们可以对布局的onSizeChanged函数进行跟踪,如果为平移模式,那么该函数可能不会被调用。
假设跟布局为线性布局,模式为压缩模式,我们写一个例子,当输入法弹出时隐藏某个view,输入法隐藏时显示某个view。
{
;
{
voidOnResize(intw,inth,intoldw,intoldh);
}
publicvoidsetOnResizeListener(OnResizeListenerl){
mListener=l;
}
publicResizeLayout(Contextcontext,AttributeSetattrs){
super(context,attrs);
}
@Override
protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){super.onSizeChanged(w,h,oldw,oldh);
if(mListener!=null){
mListener.OnResize(w,h,oldw,oldh);
}
}
}
Ⅱ 如何限制弹出的软键盘的高度android
用搜狗输入法的话可以调整键盘高度的,其他输入法应该也可以。
Ⅲ js怎么控制虚拟键盘弹出和收起
js 移动端关于页面布局,如果底部有position:fixed的盒子,又有input,当软键盘弹出收起都会影响页面布局。这时候Android可以监听resize事件,代码如下,而ios没有相关事件。
var winHeight = $(window).height(); //获取当前页面高度$(window).resize(function(){ var thisHeight=$(this).height(); if(winHeight - thisHeight >50){ //当软键盘弹出,在这里面操作 }else{ //当软键盘收起,在此处操作 }
});
/**
* 解决ios键盘弹出遮挡input
*/
function iosInput() {
if(isIos()){
$('.chart-footer').css('position','absolute');
//解决第三方软键盘唤起时底部input输入框被遮挡问题
var bfscrolltop = document.body.scrollTop;//获取软键盘唤起前浏览器滚动部分的高度
$(".chart-input").focus(function(){//在这里‘input.inputframe’是我的底部输入栏的输入框,当它获取焦点时触发事件
interval = setInterval(function(){//设置一个计时器,时间设置与软键盘弹出所需时间相近
document.body.scrollTop = document.body.scrollHeight;//获取焦点后将浏览器内所有内容高度赋给浏览器滚动部分高度
},100)
}).blur(function(){//设定输入框失去焦点时的事件
clearInterval(interval);//清除计时器
document.body.scrollTop = bfscrolltop;
//将软键盘唤起前的浏览器滚动部分高度重新赋给改变后的高度
});
}
}
iosInput();
Ⅳ android开发:软键盘显示的时候把布局往上顶
可以在清单文件AndroidManifest.xml中设定activty的windowInputMode属性为adjustPan即可
android:windowSoftInputMode属性影响活动的主窗口如何与包含屏幕上的软键盘窗口交互。这个属性的设置将会影响两件事情:
1>软键盘的状态——是否它是隐藏或显示——当活动(Activity)成为用户关注的焦点。
2>活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。
可以设定的值如下所示
可以使用|与符号结合多个值使用
Ⅳ 如何用 js 获取虚拟键盘高度
无法获取,浏览器没有提供接口,但你可以尝试用 window.onresize 事件来推断,页面加载完毕就获取窗口高度,存储到 sessionStorage 里面,当 window 在 resize 时,重新获取窗口高度,再对比之前的,他们的差值就是键盘占用去的高度了。
Ⅵ 求教android判断软键盘是否显示
判断原理: 我们activity的顶级View是DecorView,获取到DecorView并取到他的高度:
privatebooleanisSoftShowing(){
//获取当前屏幕内容的高度
intscreenHeight=getWindow().getDecorView().getHeight();
//获取View可见区域的bottom
Rectrect=newRect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
returnscreenHeight-rect.bottom!=0;
}
Ⅶ android 自定义View在弹出的软键盘之上,怎么做
通过singleTouchView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {...}计算键盘高度,有了键盘高度,就可以设置那一行的位置了.
Ⅷ 如何获取android的软键盘的显示状态
最近项目中有一个编辑框,下面是个ListView。在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击。这样的体验效果很不好。于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏。
网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断
12
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) 隐藏键盘;
的方法并没有用,于是便从官方文档着手。
发现InputMethodManager有一个方法isActive(View view):如果view是输入法的活动view,则返回true。也就是说,如果是由view触发弹出软键盘,则返回true。哇,那问题就好办了
12
if(isActive(edittext)) 隐藏键盘
接着让另一个view强制获取焦点,这样isActivite(ediitext)就为false.
这个方法比较简单,代码比较短,也很好理解,希望能够帮助有需要的人,也不枉费我调试几个小时的功夫。
附上代码:
12345678
InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){ if(inputMethodManager.isActive(searchEditText)){<br>//因为是在fragment下,所以用了getView()获取view,也可以用findViewById()来获取父控件 getView().requestFocus();//使其它view获取焦点.这里因为是在fragment下,所以便用了getView(),可以指定任意其它view inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); return true; } return false; }
ps:如果是手动弹出键盘,getActivity().getCurrentFocus()改成searchEditText.并且手动弹出的键盘isActivie()失效,可用标记来判断.
Ⅸ 如何在不同的手机上获得软键盘的高度
没有特别好的办法 只有root后 卸载关于键盘的数据包 那样你在不使用键盘的时候会很麻烦 或者将你手机输入法调成全屏手写 这样不就可以了吗
Ⅹ android 怎么判断软键盘是否打开
android判断软键盘打开的方式,可以计算主界面高度来判定,当判断主界面的高度小于手机的高度,就可以判断软键盘打开了。