方法就是:让EditText所在的layout获得焦点。
给layout注册OnTouchListener监听器
直接使用 requestFocus() 无法获取焦点,焦点依然在EditTtext上
先调用下面这两个方法:
setFocusable(true);
setFocusableInTouchMode(true);
再调用 requestFocus() 就可获取焦点
relativesetOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
relativesetFocusable(true);
relativesetFocusableInTouchMode(true);
relativerequestFocus();
return false;
}
});
怎么让Edittext 默认不自动获取焦点,有需要的朋友可以参考下。 查了一下资料,第一个EditText控件往往会自动获得焦点,有些情况这是很不美观的,如果我们想让Edittext 默认不自动获取焦点,可以在EditText控件之前的一个控件的属性上加上
可以参考如下代码:EditText editText = (EditText) findViewById(Ridsearch_text);//给editText增加获得焦点的响应editTextsetOnFocusChangeListener(new OnFocusChangeListener(){@Overridepublic void onFocusChange(View v, boolean hasFocus){if(hasFocus){//获得焦点时,修改背景属性//Rdrawableedit_text_bg_focus为背景资源
如果EditText位于布局底部的话,因为上面还有若干个组件,所有即使设置了Focusable属性得不到焦点,所以需要把前面的组件全部设置Focusable=“false”,这样就可以了。
如何让 EditText 在 Activity 启动时不获得焦点
在进入一个Activity时,如果这个Activity中有EditText,则这个EditText会自动获取焦点,然后就会d出软键盘,这样给用户体验不是很好。所以一般会通过代码控制让EditText不获取焦点。常用的方式如下,在Activity的布局文件中加上如下代码:
<!-- 输入焦点控制 -->
<LinearLayout
android:layout_width="0px"
android:layout_height="0px"
android:focusable="true"
android:focusableInTouchMode="true" />
在日前开发的一个项目中界面中除了EditText就是Spinner 和Button等空间,EditText 获取焦点以后,点击Spinner总是无法移除焦点:采取如下方式解决,
当点击Spinner时让EditText失去焦点即可:(见标红代码)
以上就是关于如何实现点击屏幕其他地方让edittext失去焦点全部的内容,包括:如何实现点击屏幕其他地方让edittext失去焦点、怎样通过点击事件 让edittext自动获取焦点、EditText获得焦点时的背景怎么修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)