EditText焦点的问题

问题:如何在进入页面时,抑制EditText自己获取焦点?

答案:在父节点or根节点,增加以下属性:

android:focusable="true"  

android:focusableInTouchMode="true"

这两个属性,就是说让此view可以获取焦点,当view加载的时候,如果有view与edittext view一样,都会默认加载焦点,那么就会优先父节点,从而edittext 在初始化的时候就拿不到焦点,也就不会一加载页面,就弹出软键盘。(LinearLayout、RelativeLayout 等,都是可以加这两个属性的)


问题:如何实现点击空白处,自动隐藏软键盘?

答案:在xml里给根节点定义一个id,然后在代码中找到这个id,然后去实现这个id的OnTouchListener事件,在方法中增加以下代码:

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

这代码,可以实现隐藏软键盘。

如果你发现,光隐藏软键盘,而edittext光标,还在那闪啊闪,不爽,你也可以再加一下这代码:

xxxid.requestFocus();

xxxid就是你找到的那父控件的变量,然后调这个方法,这个方法,就是要拿到焦点,它父控件抢焦点时,edittext的焦点自然就没了,光标也就不在那闪啊闪了~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值