Android 點擊屏幕空白處收起輸入法軟鍵盤(手動打開)
很多時候,我們在使用應用時,會出現(xiàn)輸入法軟鍵盤彈出的問題,通常情況下,我們默認會使用戶點擊返回鍵或者下一步對軟鍵盤進行隱藏。為了更好的體驗,我們可以實現(xiàn)當用戶使用完畢軟鍵盤時。點擊屏幕空白區(qū)域即可實現(xiàn)收起輸入法軟鍵盤功能。下面給大家介紹下實現(xiàn)方法。
1、//隱藏軟鍵盤
在Java文件:
InputMethodManager m = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); m .hideSoftInputFromWindow(xxxx.getWindowToken(), 0);//比如EditView
或者是:
在Manifest.xml的activity中寫上:Android:windowSoftInputMode="stateHidden表示打開activity隱藏輸入法。

2、//顯示軟鍵盤,控件ID可以是EditText,TextView
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID, 0);
3、不自動彈出鍵盤:
最理想的實現(xiàn)方式:
public class HomeActivity extends Activity {
......
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
// 獲得當前得到焦點的View,一般情況下就是EditText(特殊情況就是軌跡求或者實體案件會移動焦點)
View v = getCurrentFocus();
if (isShouldHideInput(v, ev)) {
hideSoftInput(v.getWindowToken());
}
}
return super.dispatchTouchEvent(ev);
}
/**
* 根據(jù)EditText所在坐標和用戶點擊的坐標相對比,來判斷是否隱藏鍵盤,因為當用戶點擊EditText時沒必要隱藏
*
* @param v
* @param event
* @return
*/
private boolean isShouldHideInput(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則忽略,這個發(fā)生在視圖剛繪制完,第一個焦點不在EditView上,和用戶用軌跡球選擇其他的焦點
return false;
}
/**
* 多種隱藏軟件盤方法的其中一種
*
* @param token
*/
private void hideSoftInput(IBinder token) {
if (token != null) {
InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(token,
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
......
}
以上所述是小編給大家介紹的Android 點擊屏幕空白處收起輸入法軟鍵盤(手動打開),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
android如何獲取手機聯(lián)系人的數(shù)據(jù)庫示例代碼
很多人在做手機聯(lián)系人的apk時會遇到,如何獲取手機聯(lián)系人數(shù)據(jù)庫的問題,本篇文章主要介紹了android如何獲取手機聯(lián)系人的數(shù)據(jù)庫示例代碼,有興趣的可以了解一下。2017-01-01
Android 通過Base64上傳圖片到服務器實現(xiàn)實例
這篇文章主要介紹了Android 通過Base64上傳圖片到服務器實現(xiàn)實例的相關資料,需要的朋友可以參考下2017-05-05
Android自定義LocationMarker的實現(xiàn)詳解
這篇文章主要為大家詳細介紹一個比較簡單的東西:自定義繪制Marker 其實就是自定義view, 跟軌跡沒太多關聯(lián),感興趣的小伙伴可以跟隨小編一起了解一下2023-02-02
Android程序開發(fā)之使用PullToRefresh實現(xiàn)下拉刷新和上拉加載
這篇文章主要介紹了Android程序開發(fā)之使用PullToRefresh實現(xiàn)下拉刷新和上拉加載的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07

