關(guān)鍵詞:安卓原生、unity、webview、鍵盤遮擋輸入框、沉浸式狀態(tài)欄。
首先是最簡單的情況,當我們app有一個比較靠下的輸入框時,喚出鍵盤會遮擋住輸入框。
這種情況的對應(yīng)方式很簡單,只需要找到安卓項目清單文件AndroidManifest.xml,對activity進行android:windowSoftInputMode值進行設(shè)定就可以了,設(shè)定為adjustPan
或者adjustResize
即可。
...
adjustPan
或者adjustResize是兩種不同的輸入框適應(yīng)形式,下面附上非常簡略的區(qū)別對比:
adjustPan:整個頁面往上推。
adjustResize:能推的努力推。
更詳細的地方可以百度。
如果你的鍵盤遮擋與webview掛鉤了,換句話說:你的手機鍵盤是由webview里的輸入框調(diào)起的。
這個時候情況就很復雜了,因為它涉及到全屏模式(Fullscreen)這個東西,unity的話是打包時候的是否全屏的設(shè)置,在這里是一樣的概念。
Application或者activity搞了Fullscreen,或者使用了Immersive Mode、沉浸式狀態(tài)欄,或者unity打包時勾選了fullScreenMode。
如果你出現(xiàn)問題的頁面是非全屏模式的情況,activity設(shè)置adjustPan會失效,設(shè)置adjustResize沒有問題。
如果你出現(xiàn)問題的頁面是全屏模式的情況,adjustPan跟adjustResize這兩個屬性都會失效。
adjustPan | adjustResize | |
全屏模式+webview | X | X |
非全屏模式+webview | X | √ |
任何模式+無webview | √ | √ |
也就是說,如果你的程序不是全屏模式,但出現(xiàn)問題的頁面有webview,只需要在activity里把android:windowSoftInputMode設(shè)定成adjustResize就可以了。
如果你的程序好巧不巧,既是全屏模式,出現(xiàn)問題的頁面又有webview,你遇到的時2009年就被發(fā)現(xiàn)的一個谷歌的骨灰級bug:issue 5497。
https://issuetracker.google.com/issues/36911528
這個bug官方至2022年還沒有修復,那遇到這個問題我們怎么解決呢?
12年來很多的安卓開發(fā)前端開發(fā)同學不知道多少人跌進了這個坑,我們雖然沒有一個官方的解決方案,但是民間的解決方案當然存在。
先介紹兩種比較簡單粗暴的方案:
首先當然是取消全屏模式了,惹不起還躲不起嗎,爺不干了。直接一手取消全屏模式再給android:windowSoftInputMode設(shè)置成adjustResize,困難迎刃而解。當然這種方式領(lǐng)導們可能不會接受哈,實在是過于簡單粗暴了。
第二種方案就是比較迂回的方案了,如果這個webview展示的是咱們自己寫的網(wǎng)頁哈,就讓咱們自己的網(wǎng)頁下邊增加比較長的留白,給鍵盤留一點的空間。
當然如果這個webview咱們動不了,就只剩下最后一個獨苗苗——方案三了。
AndroidBug5497Workaround類
這也是各路大佬們一致偏愛的一種處理方式,只需要一個簡簡單單的AndroidBug5497Workaround類,優(yōu)雅,非常優(yōu)雅。
這是一個專門用來對應(yīng)“issue 5497”的一個類,使用方法也非常親民,只需要三步:
1、復制AndroidBug5497Workaround類到項目中。
2、在activity的onCreate方法中添加一句AndroidBug5497Workaround.assistActivity(this)。
然后就可以解決這個非常讓人頭痛的問題了!而且它在各個Android版本都沒問題,效果基本與設(shè)置了adjustResize差不多。
關(guān)于AndroidBug5497Workaround類的代碼,java版本與Kotlin版本都有,詳情可以百度,就不在文章中附送了哈。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:安卓webview中鍵盤遮擋輸入框如何解決-創(chuàng)新互聯(lián)
文章路徑:http://jinyejixie.com/article6/geiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站建設(shè)、ChatGPT、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容