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页面中软键盘还是显示的。


目录
相关文章
|
6月前
|
Android开发
Android实现页面渐变效果
Android实现页面渐变效果
51 1
|
5月前
|
Android开发 容器
35. 【Android教程】视频页面:ViewPager
35. 【Android教程】视频页面:ViewPager
58 3
|
6月前
|
Android开发
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
|
3月前
|
存储 安全 物联网
Android经典实战之跳转到系统设置页面或其他系统应用页面大全
本文首发于公众号“AntDream”,关注获取更多技巧。文章总结了Android开发中跳转至系统设置页面的方法,包括设备信息、Wi-Fi、显示与声音设置等,并涉及应用详情与电池优化页面。通过简单的Intent动作即可实现,需注意权限与版本兼容性。每日进步,尽在“AntDream”。
362 2
|
6月前
|
Android开发
UniApp Android 页面拖动,去掉半圆形阴影
UniApp Android 页面拖动,去掉半圆形阴影
125 0
|
3月前
|
监控 安全 API
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
30 0
|
3月前
|
Android开发
Android项目架构设计问题之定义一个关闭当前页面的Action如何解决
Android项目架构设计问题之定义一个关闭当前页面的Action如何解决
17 0
|
5月前
|
传感器 Android开发 UED
Android统一设置页面竖屏
【6月更文挑战第4天】
142 8
|
4月前
|
Android开发
Android 开发中跳转到评论页面
Android 开发中跳转到评论页面
59 0
|
6月前
|
JavaScript Android开发