如何实现点击屏幕其他地方让edittext失去焦点

如何实现点击屏幕其他地方让edittext失去焦点,第1张

方法就是:让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获得焦点时的背景怎么修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9517448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存