android-解決全屏-webview-輸入框被輸入法擋住-FullScreen-adjustResize失效問題


由於公司開發的 App 中,Html 的頁面嵌入的有點多,坑爹的是,還有很多輸入框,這就算了,還要求全屏。然后就出現了這個情況。

下面來嘮叨嘮叨具體的來龍去脈。

起初是這樣的,整個項目基本完工了。測試發現,Html 的輸入框在下半屏幕的時候,點擊,軟鍵盤彈出來的時候,會把輸入框擋住。

好吧,這個問題確實有點大,要是小問題就不管也算了,先上線,以后修復。當時也是臨下班的時候才跟我說,沒辦法,只能頭頭是道的答應下來,明天解決。哈哈。。。。。。不想加班,加班會猝死的。

第二天開始瘋狂的搜索。結果杳無音信,沒辦法,自己寫了個 demo 測測,結果,自己的可以,為啥?一個一個慢慢排除,自己的demo的屬性和項目中的webview的屬性這部分核對一遍,發現,沒用,都一樣,最后排除到 Manifest 清單文件中的 Activity 的注冊那里,老子火大,一口氣全部屬性刪干凈,結果一測,問題就出現在這里,繼續順藤摸瓜,排除掉幾個自己不可能的干擾的屬性和根本不可能的影響的屬性,結果一測,咦,彈出來了,問題就出現在這里,再排出掉那些根本不可能的影響的屬性外。測了一下,基本鎖定在了全屏這個屬性的影響了。

事情總算有點眉目了。現在再次進行一輪的搜索,發現網上已經很多弟兄已經遇到過這個問題了,但十有八九都是沒解決,只是知道這是Google 留給開發者的一個坑,因為在全屏的狀態下,會自動屏幕掉 adjustResize 這些屬性也就是是說,無論這些屬性加不加都沒什么關系,很多人知道了是 Google 的坑,也就沒多大理會了,但還是有些找出了解決方案,哈哈,代碼搬運工,把磚搬過來就可以了,簡單。

下面是解決方案:

 

在Activity/Fragment的onCreate()/onCreateView()里調用AndroidBug5497Workaround.assistActivity(Activity);

這里提醒一下,最好放在最后面。我一開始放在 super 后面,setcontentView 前面,報了空指針。

最后為了省事 ,直接放在onCreate最后面。

最后說一下原理,原理就是當軟鍵盤彈出來的時候,webview的高度根據屏幕的大小進行動態的調整

代碼搬運,希望能夠幫助到各位。感謝答案提供者,祝生活愉快。也為我在此記上一筆

2016-11-07


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM