安卓webview中鍵盤遮擋輸入框如何解決-創(chuàng)新互聯(lián)

關(guān)鍵詞:安卓原生、unity、webview、鍵盤遮擋輸入框、沉浸式狀態(tài)欄。

創(chuàng)新互聯(lián) - 綿陽機(jī)房托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),綿陽機(jī)房托管,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬租用·托管,四川老牌IDC服務(wù)商

首先是最簡(jiǎn)單的情況,當(dāng)我們app有一個(gè)比較靠下的輸入框時(shí),喚出鍵盤會(huì)遮擋住輸入框。

這種情況的對(duì)應(yīng)方式很簡(jiǎn)單,只需要找到安卓項(xiàng)目清單文件AndroidManifest.xml,對(duì)activity進(jìn)行android:windowSoftInputMode值進(jìn)行設(shè)定就可以了,設(shè)定為adjustPan或者adjustResize即可。

...

adjustPan或者adjustResize是兩種不同的輸入框適應(yīng)形式,下面附上非常簡(jiǎn)略的區(qū)別對(duì)比:

adjustPan:整個(gè)頁面往上推。

adjustResize:能推的努力推。

更詳細(xì)的地方可以百度。

如果到這里你的問題解決了,那實(shí)在是太好了。不過如果你嘗試上述方案發(fā)現(xiàn)一點(diǎn)用沒有,太慘了,你踩了大雷了。

如果你的鍵盤遮擋與webview掛鉤了,換句話說:你的手機(jī)鍵盤是由webview里的輸入框調(diào)起的。

這個(gè)時(shí)候情況就很復(fù)雜了,因?yàn)樗婕暗饺聊J?Fullscreen)這個(gè)東西,unity的話是打包時(shí)候的是否全屏的設(shè)置,在這里是一樣的概念。

Application或者activity搞了Fullscreen,或者使用了Immersive Mode、沉浸式狀態(tài)欄,或者unity打包時(shí)勾選了fullScreenMode。

如果你出現(xiàn)問題的頁面是非全屏模式的情況,activity設(shè)置adjustPan會(huì)失效,設(shè)置adjustResize沒有問題。

如果你出現(xiàn)問題的頁面是全屏模式的情況,adjustPan跟adjustResize這兩個(gè)屬性都會(huì)失效。

adjustPanadjustResize
全屏模式+webviewXX
非全屏模式+webviewX
任何模式+無webview

也就是說,如果你的程序不是全屏模式,但出現(xiàn)問題的頁面有webview,只需要在activity里把a(bǔ)ndroid:windowSoftInputMode設(shè)定成adjustResize就可以了。

如果你的程序好巧不巧,既是全屏模式,出現(xiàn)問題的頁面又有webview,你遇到的時(shí)2009年就被發(fā)現(xiàn)的一個(gè)谷歌的骨灰級(jí)bug:issue 5497。

https://issuetracker.google.com/issues/36911528

這個(gè)bug官方至2022年還沒有修復(fù),那遇到這個(gè)問題我們?cè)趺唇鉀Q呢?

12年來很多的安卓開發(fā)前端開發(fā)同學(xué)不知道多少人跌進(jìn)了這個(gè)坑,我們雖然沒有一個(gè)官方的解決方案,但是民間的解決方案當(dāng)然存在。

先介紹兩種比較簡(jiǎn)單粗暴的方案:

首先當(dāng)然是取消全屏模式了,惹不起還躲不起嗎,爺不干了。直接一手取消全屏模式再給android:windowSoftInputMode設(shè)置成adjustResize,困難迎刃而解。當(dāng)然這種方式領(lǐng)導(dǎo)們可能不會(huì)接受哈,實(shí)在是過于簡(jiǎn)單粗暴了。

第二種方案就是比較迂回的方案了,如果這個(gè)webview展示的是咱們自己寫的網(wǎng)頁哈,就讓咱們自己的網(wǎng)頁下邊增加比較長(zhǎng)的留白,給鍵盤留一點(diǎn)的空間。

當(dāng)然如果這個(gè)webview咱們動(dòng)不了,就只剩下最后一個(gè)獨(dú)苗苗——方案三了。

AndroidBug5497Workaround類

這也是各路大佬們一致偏愛的一種處理方式,只需要一個(gè)簡(jiǎn)簡(jiǎn)單單的AndroidBug5497Workaround類,優(yōu)雅,非常優(yōu)雅。

這是一個(gè)專門用來對(duì)應(yīng)“issue 5497”的一個(gè)類,使用方法也非常親民,只需要三步:

1、復(fù)制AndroidBug5497Workaround類到項(xiàng)目中。

2、在activity的onCreate方法中添加一句AndroidBug5497Workaround.assistActivity(this)。

然后就可以解決這個(gè)非常讓人頭痛的問題了!而且它在各個(gè)Android版本都沒問題,效果基本與設(shè)置了adjustResize差不多。

關(guān)于AndroidBug5497Workaround類的代碼,java版本與Kotlin版本都有,詳情可以百度,就不在文章中附送了哈。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享名稱:安卓webview中鍵盤遮擋輸入框如何解決-創(chuàng)新互聯(lián)
文章路徑:http://bm7419.com/article6/geiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、ChatGPT、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)