Android中點(diǎn)擊隱藏軟鍵盤最佳方法
實現(xiàn)功能:點(diǎn)擊EditText,軟鍵盤出現(xiàn)并且不會隱藏,點(diǎn)擊或者觸摸EditText以外的其他任何區(qū)域,軟鍵盤被隱藏;
1、重寫dispatchTouchEvent()方法,獲取當(dāng)前觸摸事件為DOWN的時候隱藏軟鍵盤
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//Finger touch screen event
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
// get current focus,Generally it is EditText
View view = getCurrentFocus();
if (isShouldHideSoftKeyBoard(view, ev)) {
hideSoftKeyBoard(view.getWindowToken());
}
}
return super.dispatchTouchEvent(ev);
}
2、isShouldHideInput()方法;
/**
* Judge what situation hide the soft keyboard,click EditText view should show soft keyboard
* @param v Incident event
* @param event
* @return
*/
private boolean isShouldHideSoftKeyBoard(View view, MotionEvent event) {
if (view != null && (view instanceof EditText)) {
int[] l = { 0, 0 };
view.getLocationInWindow(l);
int left = l[0], top = l[1], bottom = top +view.getHeight(), right = left
+ view.getWidth();
if (event.getX() > left && event.getX() < right
&& event.getY() > top && event.getY() < bottom) {
// If click the EditText event ,ignore it
return false;
} else {
return true;
}
}
// if the focus is EditText,ignore it;
return false;
}
3、hideSoftKeyBoard()方法;
/**
* hide soft keyboard
* @param token
*/
private void hideSoftKeyBoard(IBinder token) {
if (token != null) {
InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(token,
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
Android SharedPreference存儲文件三步走
SharedPreferences是安卓平臺上一個輕量級的存儲類,用來保存應(yīng)用的一些常用配置,比如Activity狀態(tài),Activity暫停時,將此activity的狀態(tài)保存到SharedPereferences中;當(dāng)Activity重載,系統(tǒng)回調(diào)方法onSaveInstanceState時,再從SharedPreferences中將值取出2023-01-01
Android開發(fā)之獲取單選與復(fù)選框的值操作示例
這篇文章主要介紹了Android開發(fā)之獲取單選與復(fù)選框的值操作,結(jié)合實例形式分析了Android針對單選按鈕、復(fù)選框的事件響應(yīng)、數(shù)值獲取等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
ViewPager實現(xiàn)帶引導(dǎo)小圓點(diǎn)與自動跳轉(zhuǎn)的引導(dǎo)界面
這篇文章主要為大家詳細(xì)介紹了ViewPager實現(xiàn)帶引導(dǎo)小圓點(diǎn)與自動跳轉(zhuǎn)的引導(dǎo)界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11

