Android InputMethodManager进入页面后自动弹出软键盘

简介: Android InputMethodManager进入页面后自动弹出软键盘

一、第一种方法,进入带有输入框的页面, 让输入框自动显示软键盘

//输入框,获取焦点 不然无法弹出键盘
        et_english.requestFocus();
        //键盘输入法管理器
        InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(et_english, 0);

二、第二种设置方法

首先在AndroidManifest.xml中找到输入框,对应的Activity类

设置android:windowSoftInputMode 属性

<activity
            android:name=".InputMethodActivity"
            android:windowSoftInputMode="stateVisible" />

之后在InputMethodActivity类中给输入框EditText设置获取焦点

//请求焦点
editText.requestFocus();

三、退出这个页面后,如果不做处理的话,软键盘还在,所以需要在对应的界面对软键盘做隐藏处理,我这里是在Fragment的onResume()方法中,隐藏软键盘,就是每次进入该页面时,键盘还在就隐藏键盘。

InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);

备注:这里的requireActivity是获取Fragment中的上下文对象,在Activity里面写的话自然使用this

注意: 软键盘弹出后,默认会自动压缩View,把View往上推,如果不需要这个行为,需要在AndroidManifest.xml中对应的Activity标签中,加入android:windowSoftInputMode="adjustNothing" 不做任何调整,这样就不会自动收缩我们的页面了。但是这个输入框靠近屏幕底部的话,就不适用了,软键盘会覆盖输入框。

可以换成这个属性,如果软键盘会覆盖输入框,系统会自动将页面向上提,从而能显示输入框。

android:windowSoftInputMode="stateHidden|adjustPan"

adjustPan 的含义:当前窗口的内容将自动移动,以便当前焦点从不被键盘覆盖,和用户能总是看到输入内容的部分

stateHidden含义:当用户进入Activity后保证是隐藏软键盘的,但是如果是从另一个页面返回该页面就不能保证了。比如说用户进入A页面,然后在输入框输入内容,未收起软键盘直接进入B页面,再从B页面返回A页面,此时A页面中软键盘还是显示的。又或者是用户由A页面进入B页面,在B页面弹出软键盘,未收起直接返回A页面,此时A页面中软键盘还是显示的。


目录
相关文章
|
28天前
|
Android开发
Android实现页面渐变效果
Android实现页面渐变效果
19 1
|
9月前
|
Android开发
Android 使用ViewPager实现手动左右切换页面和底部点点跟随切换效果
Android 使用ViewPager实现手动左右切换页面和底部点点跟随切换效果
137 0
|
5月前
|
Android开发
UniApp Android 页面拖动,去掉半圆形阴影
UniApp Android 页面拖动,去掉半圆形阴影
49 0
|
28天前
|
XML Android开发 数据格式
Android注册登录页面2
Android注册登录页面
29 2
|
28天前
|
Java Android开发 数据安全/隐私保护
Android注册登录页面1
Android注册登录页面
10 1
|
4月前
|
Android开发
解决在Android Compose中点击空白处收回软键盘
解决在Android Compose中点击空白处收回软键盘
|
5月前
|
XML 监控 Java
Android App开发之事件交互Event中检测软键盘和物理按键讲解及实战(附源码 演示简单易懂)
Android App开发之事件交互Event中检测软键盘和物理按键讲解及实战(附源码 演示简单易懂)
143 0
|
5月前
|
XML Java Android开发
Android Studio App开发之实现简单的启动引导页ViewPager(附源码 实现App的欢迎页面)
Android Studio App开发之实现简单的启动引导页ViewPager(附源码 实现App的欢迎页面)
94 1
|
5月前
|
Android开发
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
45 0
|
5月前
|
存储 移动开发 JavaScript
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)