关闭

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

标签: AndroidtoolbaradjustResize
2796人阅读 评论(4) 收藏 举报
分类:

一、发现问题

项目中适配了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系统都可以完美适配。
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:127531次
    • 积分:1940
    • 等级:
    • 排名:千里之外
    • 原创:60篇
    • 转载:30篇
    • 译文:0篇
    • 评论:19条
    最新评论