關(guān)鍵詞:安卓原生、unity、webview、鍵盤(pán)遮擋輸入框、沉浸式狀態(tài)欄。
創(chuàng)新互聯(lián) - 綿陽(yáng)機(jī)房托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽(yáng)服務(wù)器托管,德陽(yáng)服務(wù)器托管,遂寧服務(wù)器托管,綿陽(yáng)服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),綿陽(yáng)機(jī)房托管,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬租用·托管,四川老牌IDC服務(wù)商首先是最簡(jiǎn)單的情況,當(dāng)我們app有一個(gè)比較靠下的輸入框時(shí),喚出鍵盤(pán)會(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è)頁(yè)面往上推。
adjustResize:能推的努力推。
更詳細(xì)的地方可以百度。
如果你的鍵盤(pán)遮擋與webview掛鉤了,換句話說(shuō):你的手機(jī)鍵盤(pán)是由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)問(wèn)題的頁(yè)面是非全屏模式的情況,activity設(shè)置adjustPan會(huì)失效,設(shè)置adjustResize沒(méi)有問(wèn)題。
如果你出現(xiàn)問(wèn)題的頁(yè)面是全屏模式的情況,adjustPan跟adjustResize這兩個(gè)屬性都會(huì)失效。
adjustPan | adjustResize | |
全屏模式+webview | X | X |
非全屏模式+webview | X | √ |
任何模式+無(wú)webview | √ | √ |
也就是說(shuō),如果你的程序不是全屏模式,但出現(xiàn)問(wèn)題的頁(yè)面有webview,只需要在activity里把a(bǔ)ndroid:windowSoftInputMode設(shè)定成adjustResize就可以了。
如果你的程序好巧不巧,既是全屏模式,出現(xiàn)問(wèn)題的頁(yè)面又有webview,你遇到的時(shí)2009年就被發(fā)現(xiàn)的一個(gè)谷歌的骨灰級(jí)bug:issue 5497。
https://issuetracker.google.com/issues/36911528
這個(gè)bug官方至2022年還沒(méi)有修復(fù),那遇到這個(gè)問(wèn)題我們?cè)趺唇鉀Q呢?
12年來(lái)很多的安卓開(kāi)發(fā)前端開(kāi)發(fā)同學(xué)不知道多少人跌進(jìn)了這個(gè)坑,我們雖然沒(méi)有一個(gè)官方的解決方案,但是民間的解決方案當(dāng)然存在。
先介紹兩種比較簡(jiǎn)單粗暴的方案:
首先當(dāng)然是取消全屏模式了,惹不起還躲不起嗎,爺不干了。直接一手取消全屏模式再給android:windowSoftInputMode設(shè)置成adjustResize,困難迎刃而解。當(dāng)然這種方式領(lǐng)導(dǎo)們可能不會(huì)接受哈,實(shí)在是過(guò)于簡(jiǎn)單粗暴了。
第二種方案就是比較迂回的方案了,如果這個(gè)webview展示的是咱們自己寫(xiě)的網(wǎng)頁(yè)哈,就讓咱們自己的網(wǎng)頁(yè)下邊增加比較長(zhǎng)的留白,給鍵盤(pán)留一點(diǎn)的空間。
當(dāng)然如果這個(gè)webview咱們動(dòng)不了,就只剩下最后一個(gè)獨(dú)苗苗——方案三了。
AndroidBug5497Workaround類
這也是各路大佬們一致偏愛(ài)的一種處理方式,只需要一個(gè)簡(jiǎn)簡(jiǎn)單單的AndroidBug5497Workaround類,優(yōu)雅,非常優(yōu)雅。
這是一個(gè)專門(mén)用來(lái)對(duì)應(yīng)“issue 5497”的一個(gè)類,使用方法也非常親民,只需要三步:
1、復(fù)制AndroidBug5497Workaround類到項(xiàng)目中。
2、在activity的onCreate方法中添加一句AndroidBug5497Workaround.assistActivity(this)。
然后就可以解決這個(gè)非常讓人頭痛的問(wèn)題了!而且它在各個(gè)Android版本都沒(méi)問(wèn)題,效果基本與設(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ù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:安卓webview中鍵盤(pán)遮擋輸入框如何解決-創(chuàng)新互聯(lián)
文章路徑:http://www.rwnh.cn/article6/geiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)頁(yè)設(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容