You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止软键盘弹出时LinearLayout布局上滑?自定义布局适配

如何阻止软键盘弹出时布局上滑,自主控制元素可见性

当然可以完全阻止屏幕移动!这正是adjustNothing这个软键盘窗口模式专门解决的场景,我给你梳理两种实现方式,还有适配你隐藏Toolbar场景的细节:

1. 静态配置(推荐,一次设置终身生效)

打开你的AndroidManifest.xml,找到对应隐藏Toolbar的Activity标签,添加android:windowSoftInputMode="adjustNothing"属性即可:

<activity
    android:name=".YourTargetActivity"
    android:windowSoftInputMode="adjustNothing"
    android:theme="@style/Theme.YourApp.NoActionBar"> <!-- 你的无Toolbar主题 -->
</activity>

这个属性的核心作用是:软键盘弹出时,系统完全不会调整Activity窗口的大小或位置,整个布局会保持初始状态。这样你就可以完全自主控制上方元素的尺寸(比如动态缩小某个View的高度、隐藏部分非必要元素),来确保EditText和下方受控内容始终可见。

2. 动态代码设置(适合运行时切换需求)

如果需要根据业务条件动态开启/关闭这个模式,可以在Activity的onCreate方法里添加代码:

Java版本

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);

Kotlin版本

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)

额外注意点

  • 你用的是隐藏Toolbar的Activity?完全不用担心,这个设置作用于整个Activity的窗口层级,和Toolbar是否显示没有任何冲突,一样能正常生效。
  • 别搞混其他软键盘模式:adjustPan会强制上推整个窗口让EditText可见(这正是你不想看到的),adjustResize会缩小窗口尺寸(通常配合ScrollView使用),只有adjustNothing是完全把布局控制权交还给你,符合你的需求。

内容的提问来源于stack exchange,提问作者Chris Merron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:24:06