開啟windowTranslucentStatus導致輸入法彈出時覆蓋輸入框問題的解決方法

  • 原因:
  • 設置了全屏屬性Theme.Light.NotittleBar.Fullscreen或者設置了activity對應的主題中android:windowTranslucentStatus屬性,設置方式為:<item name="android:windowTranslucentStatus">true</item>,這是如果對應的頁面上含有輸入框,將會導致點擊輸入框時軟鍵盤彈出后鍵盤覆蓋輸入框,導致輸入框看不見。因為在全屏時,adjustResize屬性已經失效了,該問題是系統的一個bug。
  • 解決方法:
  1. 可以設置adjust屬性為adjustPan屬性,該屬性不會失效,但是由于adjustPan會將頁面整體平移,以留出輸入法空間,會有一個抖動的效果,體驗很差。
  2. 官方解決方案:
    官方其實也發現了問題,因此在android.support.design.internal下也重寫了FrameLayout來解決該問題,把FrameLayout改成這個android.support.design.internal.ScrimInsetsFrameLayout也可以解決。
  3. 去掉對4.4狀態欄顏色的支持,使用5.0提供的方法。

此為blog備份,原地址:http://blog.yzapp.cn/開啟windowTranslucentStatus導致輸入法彈出時覆蓋輸入框問題的解決方法.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容