Android 適配toolbar後windowSoftInputMode="adjustResize" 不生效

來源:互聯網
上載者:User

標籤: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" 不生效

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.