最近在写EditText的时候发现EditText.clearFocus()无效
第一个EditText设置clearFocus()之后还是能取得焦点
原因:
查看源码发现clearFocus()执行之后有会按照先序遍历查找一个设置了focusInTouchMode(true)的view设置焦点,如果你的EditText是布局中的第一个拥有focusInTouchMode(true)的控件,则EditText.clearFocus()之后又给这个EditText设置了焦点,所以会造成EditText.clearFocus()无效的效果
第一种解决方案:
在第一个EditText控件之前的View设置
- View.setFocusableInTouchMode(true)
我这里选的是EditText之前的一个TextView
TextView textView=findViewById(R.id.textView2);
textView.setFocusableInTouchMode(true);
之后就可以解决 EditText.clearFocus()无效的问题了
第二种解决方案:
如果Edit