標籤: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。。
找到了這個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 適配toolbar後windowSoftInputMode="adjustResize" 不生效