点击EditText外部区域失去焦点的方法
生活随笔
收集整理的這篇文章主要介紹了
点击EditText外部区域失去焦点的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
復制到Activity即可
@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_DOWN) {View v = getCurrentFocus();if (isShouldHideKeyboard(v, ev)) {hideKeyboard(v.getWindowToken());}}return super.dispatchTouchEvent(ev);}private boolean isShouldHideKeyboard(View v, MotionEvent event) {if (v != null && (v instanceof EditText)) {int[] l = {0, 0};v.getLocationInWindow(l);int left = 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的事件,忽略它。return false;} else {return true;}}// 如果焦點不是EditText則忽略,這個發生在視圖剛繪制完,第一個焦點不在EditText上,和用戶用軌跡球選擇其他的焦點return false;}private void hideKeyboard(IBinder token) {if (token != null) {InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);im.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);}}總結
以上是生活随笔為你收集整理的点击EditText外部区域失去焦点的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓 屏蔽子控件点击事件
- 下一篇: java 前导零