ScrollView 里的 EditText 与输入法的用例
情景是这样的:
- 我希望页面可以滚动,因为长页面,内容多,必须滚动来满足不同手机的显示
- 点击 EditText 输入法弹出来,并将布局顶起来,并且EditText有足够的显示空间
- 进入页面时,输入法不能自动弹出来.
解决方案:
1. 用 Scrollview 满足情景里的第一个需求
2. 使用android:windowSoftInputMode="adjustResize"让布局被顶高,满足第二个需求
3. 在Activity里配置
<activity
android:name="com.didikee.Test"
android:configChanges="keyboard|keyboardHidden"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" >
</activity>
stateAlwaysHidden 与 adjustResize 连用即可实现.
会出现的bug
输入法弹出来后,取消输入法,输入法的会"占位"(即占用之前位置,可能显示白色或者黑色)
解决:
Scrollview 的宽高 和父Layout的宽高设为 "match_parent"代替 "wrap_content"即可.
原因:
布局里面的如果有listview或者类似的控件,软键盘上移的时候在adjustResize模式下会把根layout的高度修改
成软键盘之上,这时列表会被挤上去,但是软键盘还原后layout的高度还原的时候列表高度不会改变,就留白了
这时候把你的layout的高度设置成 match_parent 就好了.
标签:
Android
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!