Android软键盘处理

Android软键盘处理,第1张

概述d起来的时候第一个参数View,最好是EditText或者它的子类。布局必须加载完成。(通过延时加载的方式来解决,View.postDelayed()是一个解决方案)隐藏的时候需要依赖于一个view还是通过延迟处理来完成,会有效果如果还是没效果,那就把时间弄大点,比如300ms软键盘隐藏 d起来的时候第一个参数VIEw,最好是 EditText 或者它的子类。布局必须加载完成。(通过延时加载的方式来解决,VIEw.postDelayed() 是一个解决方案)隐藏的时候需要依赖于一个vIEw还是通过延迟处理来完成,会有效果

如果还是没效果,那就把时间弄大点,比如300ms

软键盘隐藏部分组件的处理 Todo

https://www.jianshu.com/p/89eec61fa699

/**     * 软键盘显示     *     * @param vIEw     */    @RequiresAPI(API = Build.VERSION_CODES.CUPCAKE)    public static voID showSoftKeyboard(final VIEw vIEw) {        if (vIEw == null) {            return;        }        vIEw.setFocusable(true);        vIEw.setFocusableIntouchMode(true);        if (!vIEw.isFocused()) {            vIEw.requestFocus();        }        vIEw.postDelayed(new Runnable() {            @OverrIDe            public voID run() {                inputMethodManager inputMethodManager = (inputMethodManager) vIEw.getContext()                        .getSystemService(Context.input_METHOD_SERVICE);                inputMethodManager.showSoftinput(vIEw, 0);            }        }, 100);    }
/**     * 软键盘隐藏     *     * @param vIEw     */   public static voID hIDeSoftKeyboard(final VIEw vIEw) {        if (vIEw == null) {            return;        }        vIEw.postDelayed(new Runnable() {            @OverrIDe            public voID run() {                inputMethodManager manager = (inputMethodManager) vIEw.getContext()                        .getSystemService(Context.input_METHOD_SERVICE);                manager.hIDeSoftinputFromWindow(vIEw.getwindowToken(), inputMethodManager.HIDE_NOT_ALWAYS);            }        }, 100);    }
/** * 选取屏幕高度的2/3来判断 软键盘是否d出 * @param context * @return */public static boolean isSoftShowing(Context context) {    // 获取当前屏幕内容的高度    int screenHeight = ((Activity)context).getwindow().getDecorVIEw().getHeight();    // 获取VIEw可见区域的bottom    Rect rect = new Rect();    // DecorVIEw即为activity的顶级vIEw    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {        ((Activity)context).getwindow().getDecorVIEw().getwindowVisibledisplayFrame(rect);    }    // 考虑到虚拟导航栏的情况(虚拟导航栏情况下:screenHeight = rect.bottom + 虚拟导航栏高度)    // 选取screenHeight*2/3进行判断    return screenHeight*2/3 > rect.bottom;}
总结

以上是内存溢出为你收集整理的Android软键盘处理全部内容,希望文章能够帮你解决Android软键盘处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存