Android:Activity中windowSoftInputMod属性功能和效果

大家好,我是似曾相识2022。不喜欢唱跳篮球,但对杰伦的Rap却情有独钟。

今天给大家介绍下AndroidActivty关于软键盘窗口交互模式的相关知识。没错,标题中已经给出windowSoftInputMod属性。大家都知道当我们的页面有输入框的时候,当输入框获取了焦点咱们的软件盘就会弹出来用于内容输出。不同的页面可能需要的效果不一样,有的需要让页面底部内容被软键盘托上去,有的则需要让键盘将底部内容遮挡。其中还包含了一些复杂的嵌套,可滑动控件等等,那么今天我们所讲的内容就包含了这些功能。

首先我们应该知道,目前的windowSoftInputMode有10种模式:

  • stateUnspecified

    默认交互方式。当我们没有为Activity 设置windowSoftInputMode 属性时,即采用该模式。系统会根据咱们当前Activity的界面采取合适的显示模式。

  • stateUnchanged

    状态不变。意思是当前Activity的软键盘状态和上一个页面的状态保持不变。如果上一个页面软键盘是打开状态,那么当前这个页面也是打开,反之一样。

  • stateHidden

    隐藏状态。从字面意思就可以理解,软键盘隐藏,不显示。

  • stateAlwaysHidden

    隐藏状态。软键盘总是隐藏,不显示。

  • stateVisible 显示状态。不管页面中有没有输入框都将展示软键盘。

  • stateAlwaysVisible

    显示状态。仍然是展示软键盘,但和stateVisible 有一点区别:使用该模式跳转到其他页面并且隐藏了输入框再返回到该页面时软键盘仍然显示,而stateVisible不会再次显示。

  • adjustUnspecified

    未指定状态。但这是软键盘和页面的未指定状态,也是默认状态。系统会根据不同界面,例如是否嵌套滑动控件。如果软键盘弹出就需要计算界面大小来缩小滑动控件界面来保证软键盘弹出。如果没有滑动控件,那么就遮挡底部内容。

  • adjustResize

    调整大小状态。当前页面如果包含了滑动控件,那么系统会将滑动控件界面减小以保证软键盘完全显示,底部内容会顶上去。如果没有滑动控件则遮挡底部内容。

  • adjustPan

    调整状态。当软键盘弹出遮挡了输入框时,系统会移动布局来保证输入框不被软键盘所遮挡。输入框以下的内容当然就会被遮挡。

  • adjustNothing

调整状态。和adjustPan类似,不会压缩界面,一般在这个模式下获取软键盘高度。

总的来说带有adjust开始的状态是和可滑动布局下软键盘是否遮挡布局有关的状态,而其他状态就是软键盘显示隐藏相关状态。

以上便是ActivitywindowSoftInputMod属性功能和效果的所有内容,希望对大家有所帮助!

相关推荐
草莓熊Lotso2 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
恋猫de小郭2 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
工程师老罗8 小时前
如何在Android工程中配置NDK版本
android
Libraeking11 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位12 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
JMchen12314 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs14 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob14 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔14 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像
hudawei99614 小时前
flutter和Android动画的对比
android·flutter·动画