在开发过程中经常需要写一个页面让用户填写一些信息,需要用到大量的文本框(EditText或TextInputEditText),点击文本框后光标会聚焦在此文本框中,光标不会因为用户点击此文本框以外的区域而自动释放,这对用户而言不太方便。
如何在用户点击文本框以外的区域,自动释放文本框的聚焦呢?可以写一个小工具来实现。
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import java.util.ArrayList;
import java.util.List;
/**
* 文本框焦点自动释放工具
*/
public class EditFocusHelper {
private InputMethodManager imm ;
List<EditText> editTextList = new ArrayList<>();
public EditFocusHelper(Context context){
this.imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
}
/**
* 将需要检测点击的文本框保存到列表中
*/
public EditFocusHelper put(EditText editText){
this.editTextList.add(editText);
return thi