文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android窗口软键盘调整的关键:windowSoftInputMode属性设置

2024-11-29 22:39

关注

windowSoftInputMode 有多个可能的值,可以分为两类:state 前缀的值和 adjust 前缀的值。

  1. 「state 前缀的值」:

stateUnspecified:软键盘的默认状态由系统决定。

stateUnchanged:软键盘将保持上一次的状态,无论是可见还是隐藏。

stateHidden:当 Activity 被创建时,软键盘是隐藏的。

stateAlwaysHidden:软键盘总是隐藏的,即使用户选择了一个需要输入文本的字段。

stateVisible:当 Activity 被创建时,软键盘是可见的。

stateAlwaysVisible:软键盘总是可见的。

  1. 「adjust 前缀的值」:

在AndroidManifest.xml设置:


在代码中设置:

public class MainActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    }
}

这些值可以通过 "|" 符号分隔进行组合,在上面的代码中,stateHidden 和 adjustResize 被组合在一起使用。

windowSoftInputMode 常用的属性有 adjustPan,adjustResize,adjustNothing

adjustPan

窗口内容不会调整大小,而是向上平移,以便当前获得焦点的字段不被键盘遮挡。Activity窗口(DecorView)大小不变。当获取到焦点的EditText位于屏幕下方,软键盘弹出会遮挡到EditText时,整个DecorView会往上移动,至于上移多少并不确定。一般是上移至使EditText刚好不被软键盘遮挡住为止。

图片

adjustResize

当软键盘显示时,窗口会调整大小,以便为软键盘腾出空间。通常意味着窗口的内容会向上移动,以便为键盘腾出空间。DecorView大小不会改变,内容区contentView(id = android.R.content)会相应的缩小为键盘腾出空间。

图片

注意:adjustResize只是调整contentView的大小,所以还是有可能覆盖掉EditText。

adjustNothing

Activity窗口不会做任何调整,contentView大小也不会改变。

来源:沐雨花飞蝶内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯