Android 适配toolbar后windowSoftInputMode="adjustResize" 不生效

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、发现问题

项目中适配了Android最新的MaterialDesign,其中最主要修改的一个就是将actionbar 替换成了toolbar,如果对toolbar没有了解的话可以参考  这篇文章
适配toolbar,请看  这篇文章
由于我们要用toolbar替代actionbar,所以我们首先要做的就是隐藏actionbar,我们在theme中声明
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
....

适配完toolbar后,我们有一个界面是这样的


也就是说底部有一个菜单栏,键盘弹出的时候会把这个菜单栏顶上来,正常来说,我们只需要在 AndroidManifest相应的Activity下面声明:
            android:windowSoftInputMode="adjustResize" 
就可以搞定。

但是,适配toolbar后,尼玛竟然不生效了。。。

二、解决问题

google了下,简单的解决办法说是这样的,加一个属性
android:fitsSystemWindows="true"

虽然可以生效,但是。。toolbar向下平移了statusbar的高度,也就是说statusbar是全白的。。
看来这个不行了,继续google。。

找到了这个
分数最高的那个解决方案

在三星上可以完美解决,但是在5.0系统和魅族手机上 底部菜单栏和键盘有大约50px的高度,不能完美适配。。。尼玛

继续google
自定义了一个layout继承你的根layout。
重写fitSystemWindows方法,并且在根layout中声明 fitSystemWindows="true"

虽然麻烦点,但是在三星和魅族以及nexus 5的 4.3-5.0系统都可以完美适配。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值