解决EditText自动获取焦点弹出输入法(从focusable与focusableInTouchMode的角度)

如果页面上有EditText控件,那么用户打开该页面时往往会自动弹出输入法。这是因为编辑框(EditText)会默认获得焦点,即默认模拟用户的点击操作,于是输入法的软键盘就弹出来了,想要避免这种情况,就得阻止编辑框默认获得焦点。做法是通过focusable和focusableInTouchMode属性强制地将焦点的获取权限交给该页面的根节点,从而避免输入法自动弹出.

代码如下:


    android:focusable="true"
    android:focusableInTouchMode="true"

android:focusable
是针对"老人机"等键盘下操作的情况.如果Focusable设置为true,则键盘上下左右移动,被选中的部分会有高亮提示表示目前的焦点,焦点会随键盘的操作移动,若焦点在Button上,当点击"确认"时会进行相应的onClick()操作。

android:focusableInTouchMode
是针对触屏情况下的(用户可以直接点击,因而不用高亮来表示自己当前选择的是哪一个).用户直接用手指点击控件比如Button(大多数控件的FocusableInTouchMode默认为false),这个时候会执行点击事件,进行相应的onClick()操作.如果其FocusableInTouchMode设置为true,则第一次点击就相当于获取焦点,只有点击下一次才会触发onClick()事件.

———————————————————
详细介绍可以参考以下博客关于 Android touch mode和focusableInTouchMode分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值