300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android InputMethodManager进入页面后自动弹出软键盘

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

时间:2024-06-03 07:28:42

相关推荐

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

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

👉点击跳转到网站

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

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

二、第二种设置方法

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

设置android:windowSoftInputMode属性

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。