- 禁止EditText自动获取焦点
在EditText的父布局中加入下面属性即可
android:focusable="true"//是否可聚焦
android:focusableInTouchMode="true"//是否是触摸方式获取焦点
- 解决有EditText的界面,软键盘和EditText焦点切换的问题
/**
* 处理EditText焦点问题
*/
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (v instanceof EditText) {
Rect outRect = new Rect();
v.getGlobalVisibleRect(outRect);
if (!outRect.contains((int) event.getRawX(), (int) event.getRawY())) {
v.setFocusable(false);
v.setFocusableInTouchMode(true);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
return super.dispatchTouchEvent(event);
}
- 避免有两个EditText时,两个EditText互相争夺焦点的问题
解决方法:方法1和方法2共同使用