Android中关于键盘管理,点击除editText外的区域收起键盘
来源:互联网 发布:樱井知香怎么喷那么多 编辑:程序博客网 时间:2024/06/06 17:41
Android中关于键盘管理,点击除editText外的区域收起键盘
借鉴这位大神的:http://blog.csdn.net/qibin0506 代码如下:
/** * Created by xiaoMan on 2016/11/22. * Email:1635401972@qq.com * Details: */public class AutoHideIMEFrameLayout extends FrameLayout { public AutoHideIMEFrameLayout(Context context) { super(context); } public AutoHideIMEFrameLayout(Context context, AttributeSet attrs) { super(context, attrs); } public AutoHideIMEFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { Context context = getContext(); if (context == null || !(context instanceof Activity)) { return super.dispatchTouchEvent(ev); } Activity activity = (Activity) context; View focusView = activity.getCurrentFocus(); if (focusView != null && shouldHideInputMethod(focusView, ev)) { hideInputMethod(focusView); } } return super.dispatchTouchEvent(ev); } private boolean shouldHideInputMethod(View focusView, MotionEvent event) { Rect rect = new Rect(); focusView.getHitRect(rect); return !rect.contains((int) event.getX(), (int) event.getY()); } private void hideInputMethod(View currentFocus) { if (currentFocus == null) { return; } InputMethodManager imm = (InputMethodManager) currentFocus.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); }}
2
/** * Created by xiaoMan on 2016/11/22. * Email:1635401972@qq.com * Details: */public class HideIMEUtil { public static void wrap(Activity activity) { ViewGroup contentParent = (ViewGroup) activity.findViewById(android.R.id.content); wrap(contentParent); } public static void wrap(Fragment fragment) { ViewGroup contentParent = (ViewGroup) fragment.getView().getParent(); wrap(contentParent); } public static void wrap(ViewGroup contentParent) { View content = contentParent.getChildAt(0); contentParent.removeView(content); ViewGroup.LayoutParams p = content.getLayoutParams(); AutoHideIMEFrameLayout layout = new AutoHideIMEFrameLayout(content.getContext()); layout.addView(content); contentParent.addView(layout, new ViewGroup.LayoutParams(p.width, p.height)); }}
3.使用的时候只需:
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppManager.getAppManager().addActivity(this); setContentView(R.layout.activity_set_email_layout); HideIMEUtil.wrap(this);//键盘管理,点击除editText外区域收起键盘 initView(); setTopView();}
阅读全文
0 0
- Android中关于键盘管理,点击除editText外的区域收起键盘
- Android中关于键盘管理,点击除editText外的区域收起键盘
- Android点击除键盘外的其他区域隐藏键盘
- 点击除搜索框EditText外其他位置EditText失去焦点收起键盘
- Android 点击EditText以外区域键盘消失
- Android点击EditText以外区域,键盘消失
- Android点击其他区域,隐藏EditText键盘。
- android中 点击非键盘区域 隐藏键盘的方法
- Android EditText 输入完毕 点击空白区域键盘自动退出
- Android点击EditText以外区域隐藏键盘Fragment同样适用
- android点击任意非EditText区域,隐藏键盘
- android点击屏幕上EditText区域以外的任何地方隐藏键盘的方法
- 点击非edittext区域 隐藏键盘
- android 点击空白处收起键盘
- android 点击空白处收起键盘和自定义EditText实现右下角计数控件
- searchbar在点击屏幕上空白区域后收起键盘
- UITextField的键盘收起及外部点击
- 点击UIViewController的任意地方,收起键盘
- 【Linux】Linux中常用操作命令
- iOS开发
- Linux使用Wine安装腾讯TIM
- java IO流面试总结
- leetcode--Binary Tree Zigzag Level Order Traversal
- Android中关于键盘管理,点击除editText外的区域收起键盘
- java 中的Scanner(非常详细不看后悔)
- [一天一项目]象棋
- 集成电路中测试概述(三)
- MongoDB如何添加用户?使其有效?
- popupwindow 上点击 spinner报错
- linux 下安装jdk
- Kafka入门及使用(一)- kafka架构介绍
- root密码忘了怎么办?centos7下重置root密码