感谢大佬:https://blog.csdn.net/a18615971648/article/details/72869345

有时候的项目当中进入某个页面edittext会自动获取焦点弹出软键盘,用户体验非常不好,那么如何避免这种情况呢?在网上查了一下大概有三种方法。

第一种:设置一个默认的View,在页面加载的时候调用requFocus()方法,前提是该View的setFocusable()要设置为true

第二种:直接调用edittext的clearFocus()方法,不过该方法有时候会不生效

第三种:在布局文件中给edittext的父控件增加两个属性

android:focusable="true"

android:focusableInTouchMode="true"

例如:

android:layout_height="50dp"

 android:background="@drawable/bg_input" 

   android:layout_marginLeft="20dp" 

 android:layout_marginRight="20dp" 

   android:gravity="center_vertical" android:focusable="true" 

 android:focusableInTouchMode="true" >

   android:layout_width="0dp"

   android:layout_weight="5" 

 android:layout_height="wrap_content" 

  android:hint="手机号码" 

  android:layout_toRightOf="@id/iv_login" 

  android:paddingLeft="5dp" 

  android:inputType="number" 

 android:background="@null"

另外还有一种方法是强制隐藏输入法,但并不会使edittext失去焦点

InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

补充:

参考:https://ask.csdn.net/questions/39

Android 如何让EditText不自动获取焦点&隐藏软键盘的更多相关文章

  1. Android 如何让EditText不自动获取焦点 (转)

    在项目中,一进入一个页面, EditText默认就会自动获取焦点. 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! x ...

  2. Android开发UI之手动显示和隐藏软键盘

    1.方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) InputMethodManager imm = (InputMethodManager) getSystemService(Contex ...

  3. Android 如何让EditText不自动获取焦点

    解决之道:在EditText的父级控件中找一个,设置成 android:focusable="true"     android:focusableInTouchMode=&quo ...

  4. Android:让EditText不自动获取焦点

    解决方法: 在EditText的父级控件中加入属性: android:focusable="true" android:focusableInTouchMode="tru ...

  5. Android 设置让EditText不自动获取焦点

    在EditText所在的父控件中设置如下属性: android:focusable="true" android:focusableInTouchMode="true&q ...

  6. 如何让EditText不能自动获取焦点(转)

    转载地址:http://blog.csdn.net/subaohao/article/details/9043895 在activity中放置了1个或1个以上的EditText,进入该activity ...

  7. 让EditText不能自动获取焦点

    在activity中放置了1个或1个以上的EditText,进入该activity的时候第一个EditText会接收焦点,我希望里面所有的EditText默认是不接收焦点的,该怎么做呢? 方法: 在第 ...

  8. Android点击空白处,隐藏软键盘

    在做登陆或者注册的时候,软键盘经常可能会挡住一些界面.我们需要在输入完成之后隐藏软键盘. 在我们点击空白处或者非EditText的地方来隐藏软键盘. public class HomeActivity ...

  9. 在android中如何通过点击edittext之外的部分使软键盘隐藏

    我们知道在android中点击edittext框就会自动弹出软键盘,那怎么通过点击edittext之外的部分使软键盘隐藏呢?(微信聊天时的输入框就是这个效果,这个给用户的体验还是很不错的) 首先我们要 ...

随机推荐

  1. HTML网页设计基础笔记 • 【第8章 页面布局与规划】

    全部章节   >>>> 本章目录 8.1 表格布局 8.1.1 表格布局 8.2 流式布局 8.2.1 瀑布流布局 8.2.2 masonry 实现瀑布流布局 8.3 div ...

  2. Python学习笔记:利用pd.get_dummies实现哑变量编码

    一.理论介绍 虚拟变量(dummy variable)也叫哑变量,是一种将多分类变量转换为二分变量的一种形式. 如果多分类变量有k个类别,则可以转化为k-1个二分变量. 需要有一个参照的类别. 在非线 ...

  3. mysql语句3-插入、修改删除表

    二.DML数据操纵语句 关键字:insert(插入)  delete(删除)  update(更新)  select(查询) 1.表创建好以后,就可以插入记录了,语法如下: 方法一 :insert i ...

  4. 初识python: 字符串常用操作

    直接上代码示例: #!/user/bin env python # author:Simple-Sir # time:20180914 # 字符串常用操作 name = 'lzh lyh' print ...

  5. ModelForm has no model class specified

    未指定模型类,错误发生在把model拼写错误 来自为知笔记(Wiz)

  6. Shell 中的 expect 命令

    目录 expect 介绍 expect 安装 expect 语法 自动拷贝文件到远程主机 示例一 示例二 示例三 示例四 expect 介绍 借助 expect 处理交互的命令,可以将交互过程如 ss ...

  7. Oracle - 以 INSERT SQL语句形式导出结果集

    使用 SQLcl - 这是 SQL Developer 的命令行接口 下载 SQLcl sql sys/welcome@localhost:1521:orcl as sysdba #sql usern ...

  8. CentOS7防火墙firewalld 和 CentOS6防火墙iptables的一些配置命令

    CentOS7 防火墙 一.防火墙的开启.关闭.禁用.查看状态命令 (1)启动防火墙:systemctl start firewalld (2)关闭防火墙:systemctl stop firewal ...

  9. JPA与hibernate-------JPA01

    ORM概述 ORM(Object-Relational Mapping) 表示对象关系映射.在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中.只要有一套程序能够做到建立对象与数据库 ...

  10. 如何更改Docker已经挂载的目录

    更改docker已经挂载的目录,主要有两种方式:一是重新创建容器,二是更改配置文件.第一种方式较为简单,下面具体演示第二种方式,通过更改配置文件来更换目录 挂载. 安装docker yum -y in ...