fragment dispatchTouchEvent
生活随笔
收集整理的這篇文章主要介紹了
fragment dispatchTouchEvent
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在父activity添加如下代碼即可
@Override public 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; }/** * 獲取InputMethodManager,隱藏軟鍵盤 * * @param token */ private void hideKeyboard(IBinder token) {if (token != null) {InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS); } }總結
以上是生活随笔為你收集整理的fragment dispatchTouchEvent的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel表格内容导出到页面
- 下一篇: JIRA-6.3.6安装与破解