android:focusableInTouchMode="true"
首先看上面這句代碼,只需要加在包裹EditText組件的父佈局裏面就可以實現取消默認得到焦點光標的操作。
// 觸摸屏幕取消EditText的焦點光標
rel.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// rel.setFocusable(true);
// 如果xml文件裏面沒設置,就需要在這裏設置
// rel.setFocusableInTouchMode(true);
rel.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(et1.getWindowToken(), 0);
return false;
}
});
其次看上面這第二段代碼,這是在針對你屏幕中最大的佈局寫的,在觸摸這個佈局的時候就會去請求焦點,裏面有註釋的兩行代碼,其中第一行我感覺是沒用的,不知道會不會是因爲手機問題,如果你的手機複製這樣的代碼實現不了效果,建議你加一下那句代碼試試。 下面兩行是隱藏鍵盤的,et1是一個EditText。
當然實現了以上這些還不夠,你的界面可能還有按鈕等其它控件,你點擊其它是不會監聽到這個觸摸事件的,所以你還需要單獨列出。想方便的話可以把這幾句代碼寫在一個方法裏面,然後多處調用。
這個效果不好展示,給各位看一下佈局就好,剩下的自己研究吧