Android 适配toolbar后windowSoftInputMode=adjustResize 不生效

一、发现问题

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

关于爱情简短的句子

Android 适配toolbar后windowSoftInputMode=adjustResize 不生效

相关文章:

你感兴趣的文章:

标签云: