android關於EditText取消默認焦點及觸摸其它地方去掉光標隱藏鍵盤問題

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。

當然實現了以上這些還不夠,你的界面可能還有按鈕等其它控件,你點擊其它是不會監聽到這個觸摸事件的,所以你還需要單獨列出。想方便的話可以把這幾句代碼寫在一個方法裏面,然後多處調用。

這個效果不好展示,給各位看一下佈局就好,剩下的自己研究吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章