android关于EditText取消默认焦点及触摸其它地方去掉光标隐藏键盘问题

来源:互联网 发布:linux arp 广播 编辑:程序博客网 时间:2024/05/20 14:17
android:focusableInTouchMode="true"

首先看上面这句代码,只需要加在包裹EditText组件的父布局里面就可以实现取消默认得到焦点光标的操作。

// 触摸屏幕取消EditText的焦点光标rel.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View arg0, MotionEvent arg1) {// rel.setFocusable(true);// 如果xml文件里面没设置,就需要在这里设置// rel.setFocusableInTouchMode(true);rel.requestFocus();InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(et1.getWindowToken(), 0);return false;}});

其次看上面这第二段代码,这是在针对你屏幕中最大的布局写的,在触摸这个布局的时候就会去请求焦点,里面有注释的两行代码,其中第一行我感觉是没用的,不知道会不会是因为手机问题,如果你的手机复制这样的代码实现不了效果,建议你加一下那句代码试试。 下面两行是隐藏键盘的,et1是一个EditText。

当然实现了以上这些还不够,你的界面可能还有按钮等其它控件,你点击其它是不会监听到这个触摸事件的,所以你还需要单独列出。想方便的话可以把这几句代码写在一个方法里面,然后多处调用。

这个效果不好展示,给各位看一下布局就好,剩下的自己研究吧

0 0