码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-05-04 22:08:22      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:android   toolbar   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" 不生效

标签:android   toolbar   adjustresize   

原文地址:http://blog.csdn.net/hlglinglong/article/details/45485769

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!