安卓篱笆

标题: 安卓开发如何适当隐藏输入框 [打印本页]

作者: 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