Android 软键盘自动弹出与关闭实例详解

 更新时间:2016年12月22日 09:10:15   作者:android_小路  
这篇文章主要介绍了Android 软键盘自动弹出与关闭实例详解的相关资料,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出,这里举例说明该如何实现,需要的朋友可以参考下

Android 软键盘自动弹出与关闭

在我们写修改信息或者搜索,修改密码等界面的时候,用户进入这个界面的主要目的就是输入修改/查找 某些信息,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出。

1.软键盘的自动弹出

private void showKeyboard(){
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    inputMethodManager.showSoftInput(editText, 0);
  }

对于界面比较复杂的情况的时候,软键盘可能无法正常的弹出,需要延迟加载。即在界面加载完成之后,弹出软键盘

1.1 使用 定时器 schedule

Timer timer = new Timer();
     timer.schedule(new TimerTask()  {
       public void run() {
         InputMethodManager inputManager = (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
         inputManager.showSoftInput(editText, 0);
       }
     }, 998);

1.2 使用 handler
这里写图片描述

这里写图片描述

2.软键盘的关闭

我遇到过一种情况是,首页是scrollView 包裹的界面,滚动一段距离后进入下一个页面,会弹出软键盘,当关闭该界面的时候(即直接 finish()),回到首页的时候,scrollView 不是原来的位置了。处理办法就是 在有软键盘弹出的页面,先关闭软键盘,再 finish()界面。

private void closeKeyboard() {
    View view = getWindow().peekDecorView();
    if (view != null) {
      InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
      inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
  }

3.软键盘把某些布局挤上去了的情况

<activity
        android:name=".activity.DetailActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan"
        android:theme="@style/AppTheme.NoActionBar.Translucent"/>

主要就是 windowSoftInputMode 这个属性,其中2个比较重要的是 adjustPan 和 adjustResize
adjustPan 不会把底部的布局给挤上去,例如relateLayout 布局中 放到bottom 的布局
adjustResize 是自适应的,会把底部的挤上去。

更详细的可以了解下 windowSoftInputMode 这个属性,好多大神的博客上都有说明,我这就不赘述了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Android RecyclerView使用方法详解

    Android RecyclerView使用方法详解

    这篇文章主要为大家详细介绍了Android RecyclerView的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Android编程实现给Button添加图片和文字的方法

    Android编程实现给Button添加图片和文字的方法

    这篇文章主要介绍了Android编程实现给Button添加图片和文字的方法,涉及Android针对按钮元素属性的相关操作技巧,需要的朋友可以参考下
    2015-11-11
  • Android ConstraintLayout约束布局使用详解

    Android ConstraintLayout约束布局使用详解

    ConstraintLayout 即约束布局,也是 Android Studio 的默认布局,它可以减少布局的层级,改善布局性能。不夸张地说,它基本上可以实现任何你想要的布局效果,下面,咱们一起来瞧瞧吧
    2022-11-11
  • Android 仿微信数字键盘

    Android 仿微信数字键盘

    大部分的金融App会对默认的数字键盘进行处理,以实现自定义的数字安全键盘。基于此,本文对对微信数字键盘样式进行了仿写,实现了一套自定义的数字安全键盘(支持随机数字分布)。
    2021-05-05
  • android中使用Html渲染的方式实现必填项前面的*号示例

    android中使用Html渲染的方式实现必填项前面的*号示例

    本篇文章主要介绍了android中使用Html渲染的方式实现必填项前面的*号示例,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • Android编程实现监听EditText变化的方法

    Android编程实现监听EditText变化的方法

    这篇文章主要介绍了Android编程实现监听EditText变化的方法,涉及Android针对EditText的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • ANDROID 完美退出APP的实例代码

    ANDROID 完美退出APP的实例代码

    这篇文章介绍了ANDROID 完美退出APP的实例代码,有需要的朋友可以参考一下
    2013-08-08
  • Android评论功能的实现过程

    Android评论功能的实现过程

    这篇文章为大家详细介绍了Android评论功能的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Android LayoutInflater中 Inflate()方法应用

    Android LayoutInflater中 Inflate()方法应用

    本文主要介绍Android 中Inflate 方法的用法, 在开发Android应用过程中,可以在程序中应用 Inflate()方法加载新布局,希望能帮助有需要的朋友
    2016-07-07
  • Android跟随手指移动的控件demo实例

    Android跟随手指移动的控件demo实例

    大家好,本篇文章主要讲的是Android跟随手指移动的控件demo实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论