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

原创 2015年05月04日 21:30:30

一、发现问题

项目中适配了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。。

找到了这个
http://stackoverflow.com/questions/7417123/android-how-to-adjust-layout-in-full-screen-mode-when-softkeyboard-is-visible
分数最高的那个解决方案

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

继续google
找到了这个http://stackoverflow.com/questions/21092888/windowsoftinputmode-adjustresize-not-working-with-translucent-action-navbar
自定义了一个layout继承你的根layout。
重写fitSystemWindows方法,并且在根layout中声明 fitSystemWindows="true"

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

Android-状态栏透明导致android:windowSoftInputMode属性失效

今天UI给的新设计稿,要求状态栏透明。透明化的状态看效果还挺不错。大概是这个样子(请忽略这张难看的背景,只是一个Demo): 方法呢,也很简单,onCreate 里一行代码: getWindo...

Android4.4设置windowSoftInputMode失效问题的解决方案

今天遇到在4.4手机上设置Activity的windowSoftInputMode属性为adjustResize的时候,竟然没有被顶上去.导致软键盘遮挡布局. 问题导致可能性沉浸式布局,全屏模式等…解...

android:windowSoftInputMode 无效的原因

android:windowSoftInpu

Android中的windowSoftInputMode属性详解

android:windowSoftInputMode属性一共有9个取值,分别是:     stateUnspecified,stateUnchanged,stateHidden,stateAl...

android:windowsoftinputmode=“adjustresize” 无效的解决办法

1.可能是布局有问题(适当的使用relativelayout,尽量少使用LinearLayout) 程序之前的大致结构如下: [java] view plain copy ...

android:windowSoftInputMode属性详解

android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。 这个属性能影响两件事...

windowSoftInputMode属性介绍及设置adjustResize不起作用的解决方案

android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。 这个属性能影响两件事...

android:windowSoftInputMode属性使用

windowSoftInputMode属性设置值说明。                                     "stateUnchanged", "stateHidden", ...

【Android开发经验】android:windowSoftInputMode属性详解

在前面的一篇文章中,简单的介绍了一下如何实现软键盘不自动弹出,使用的方法是设置android:windowSoftInputMode属性。那么,这个属性到底是干什么的,他有什么作用呢?今天这篇文章,就...

C++实现epoll回射服务器

C++实现epoll回射服务器
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 适配toolbar后windowSoftInputMode="adjustResize" 不生效
举报原因:
原因补充:

(最多只允许输入30个字)