安卓如何调出软键盘_Android 软键盘的显示和隐藏,这样操作就对了

本文详细介绍了在Android中如何通过InputMethodManager显示和隐藏软键盘,包括showSoftInput()、hideSoftInputFromWindow()和toggleSoftInput()方法的使用,并提供了Java和Kotlin的实用工具类KeyboardUtils。此外,还探讨了flag参数的影响和软键盘状态判断的难点。
摘要由CSDN通过智能技术生成

一、前言

如果有需要用到输入的地方,通常会有需要自动弹出或者收起软键盘的需求。开篇明义,本文会讲讲弹出和收起软键盘的一些细节,最终还会从源码进行分析。

想要操作软键盘,需要使用到 InputMethodManager ,它是一个系统服务,可以使用 Context.getSystemService() 获取到它。而很多关键的逻辑代码,都是在 InputMethodManagerService 中实现的。

特别说明:本文的所有分析的源码,都是基于 Android 26 的源码。

二、操作软键盘

2.1 InputMethodManager

前面提到,想要操作软键盘,需要使用 InputMethodManager ,它是一个系统服务,想要获取它,可以使用 getSystemService() ,获取到它。

毕竟是系统服务,使用的时候为了安全,还是要判空,避免空指针。

2.2 显示软键盘

在 InputMethodManager 中,有两个方法 showSoftInput() 和 showSoftInputFromInputMethod() ,而实际上,只有 showSoftInput() 是有效的。

它有两个重载方法,而通常我们会使用它的两个参数的方法。

这里我们只需要传递两个参数。它首先需要一个 View ,使用软键盘就是为了输入,而输入就需要有接收输入内容的 View ,这里接收输入的 View ,最好是一个 EditText(但这不是必须的)。

而第二个参数 flags 就是个标志位,从上面截图的方法签名上的文档上可以看到,它接收 0 或者 SHOW_INPYT_IMPLICIT 两个参数,但是实际上,它有第三个参数,另外一个是 SHOW_FORCED。

可以看到 1、2 都是有特殊含义的,实际上它们并不影响显示,只是在隐藏的时候,会有一些限制,这些后面看源码的时候再说,一般没有特别需要的话,我们直接传递 0 就好了。

现在,简单总结一下调用 showSoftInput()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值