安卓篱笆
标题:
安卓开发如何适当隐藏输入框
[打印本页]
作者:
GuiTarvvm2098
时间:
2017-11-30 04:44
标题:
安卓开发如何适当隐藏输入框
在安卓开发的过程中,用户体验是非常重要的,特别是在弹出隐藏输入框的适当显示和隐藏很重要!下面分享字段核心代码!点击其他地方便可隐藏输入框!
[attach]400[/attach]
@Override
publicbooleandispatchTouchEvent(MotionEventev){
if(ev.getAction()==MotionEvent.ACTION_DOWN){
Viewv=getCurrentFocus();
if(isShouldHideKeyboard(v,ev)){
hideKeyboard(v.getWindowToken());
}
}
returnsuper.dispatchTouchEvent(ev);
}
/**
*根据EditText所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏
*
*@paramv
*@paramevent
*@return
*/
privatebooleanisShouldHideKeyboard(Viewv,MotionEventevent){
if(v!=null&&(vinstanceofEditText)){
int[]l={0,0};
v.getLocationInWindow(l);
intleft=l[0],
top=l[1],
bottom=top+v.getHeight(),
right=left+v.getWidth();
if(event.getX()>left&&event.getX()<right
&&event.getY()>top&&event.getY()<bottom){
//点击EditText的事件,忽略它。
returnfalse;
}else{
returntrue;
}
}
//如果焦点不是EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点
returnfalse;
}
/**
*获取InputMethodManager,隐藏软键盘
*@paramtoken
*/
privatevoidhideKeyboard(IBindertoken){
if(token!=null){
InputMethodManagerim=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(token,InputMethodManager.HIDE_NOT_ALWAYS);
}
}
学会了吗?
“此文为看点(大道至简大智若愚)原创内容,特此声明”
欢迎光临 安卓篱笆 (http://www.okapk.cn/)
Powered by Discuz! X3.2