首先在Activity中重写onTouchEvent
/*
* 重写onTouchEvent方法监听
* */
@Override
public boolean onTouchEvent(MotionEvent event) {
InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (MainActivity.this.getCurrentFocus() != null) {
if (MainActivity.this.getCurrentFocus().getWindowToken() != null) {
imm.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}
return super.onTouchEvent(event);
}
在Fragment的onCreateView方法中调用Activity中的onTouchEvent方法:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_home_tab, container, false);
//点击空白区域系统软键盘消失
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
getActivity().onTouchEvent(motionEvent);
return false;
}
});
return view;
}
点击系统软键盘上的搜索隐藏软键盘:
/*
* 系统软键盘
* */
public void initKeyboard(){
//点击事件
et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
//系统软键盘搜索
if (i == EditorInfo.IME_ACTION_SEARCH) {
String s = et.getText().toString().trim();
if(s.isEmpty()){
Toast.makeText(getContext(), "请输入你要查询的东西", Toast.LENGTH_SHORT).show();
return true;
}else {
Toast.makeText(getContext(), "" + s, Toast.LENGTH_SHORT).show();
}
return false;
}
return false;
}
});
}