oppo手机键盘怎么隐藏的,oppo手机键盘声音怎么关闭

首页 > 实用技巧 > 作者:YD1662023-06-03 00:18:42

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

现在,简单总结一下调用 showSoftInput() 会生效的关键点:

1、第一个参数,最好是 EditText 或者它的子类。

考虑到软键盘就是为了输入,EditText 就是一个接收输入的控件。而这不是绝对的,如果不是一个 EditText ,就必须要求这个 View 有两个属性,分别是:android:focusable="true"android:focusableInTouchMode="true"

2、第一个参数,必须是可获取焦点的,并且当前已经获取到焦点。

EditText 默认是允许获取焦点的,但是假如布局中,存在多个可获取焦点的控件,就需要提前让我们传递进去的 View 获取到焦点。获取焦点可以使用 requestFocus() 方法。

3、布局必须加载完成。

onCreate() 中,如果立即调用 showSoftInput() 是不会生效的。想要在页面一启动的时候就弹出键盘,可以在 Activity 上,设置 android:windowSoftInputMode 属性来完成,或者做一个延迟加载,View.postDelayed() 也是一个解决方案。

所以最终,完整的显示软键盘的代码就如下所示了。

oppo手机键盘怎么隐藏的,oppo手机键盘声音怎么关闭(5)

2.3 隐藏软键盘

虽然 showSoftInput() 方法是有效的,但是想要隐藏软键盘,就没有提供对应的 hideSoftInput() 方法,但是却有一个 hideSoftInputFromWindow() 方法,可以用来隐藏软键盘。

先来看看这个方法的签名,它同样有两个方法可以调用。

oppo手机键盘怎么隐藏的,oppo手机键盘声音怎么关闭(6)

它接收两个参数,第一个参数是一个 IBinder ,可以直接传递一个 View.getWindowToken() 的 windowToken 对象就可以了。而第二个参数,就是隐藏软键盘的标志位,如果没有特殊要求的话,直接传递 0 就好了。

注意这里虽然原则上需要传递一个之前弹出键盘传递的时候,传递的 View 的 windowToken ,但是实际情况是你只需要传递一个存在于当前布局 ViewTree 中,随意一个 View 的 windowToken 就可以了。

最终隐藏软件的代码就是这样的。

oppo手机键盘怎么隐藏的,oppo手机键盘声音怎么关闭(7)

2.4 切换键盘的弹出和隐藏

在 InputMethodManager 中,还提供了一个 toggleSoftInput() 方法,如同它的名字一样,它可以让软键盘在显示和隐藏之间切换。

oppo手机键盘怎么隐藏的,oppo手机键盘声音怎么关闭(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.