頁面閃退后自適應(yīng)高度的ViewPager高度會拉長 & Resources.getSystem().displayMetrics.widthPixels 不是一個(gè)固定值

遇到一個(gè)奇葩的bug。

自適應(yīng)高度的ViewPager 在頁面閃退時(shí),高度會拉長!有一段空白區(qū),特別丑!

分析

打斷點(diǎn),發(fā)現(xiàn)問題:
Resources.getSystem().displayMetrics.widthPixels 不是一個(gè)固定值

獲取設(shè)備寬高的代碼

val appWidth = Resources.getSystem().displayMetrics.widthPixels
val appHeight = Resources.getSystem().displayMetrics.heightPixels

1. 正常情況進(jìn)入頁面,返回 appWidth 為 1080
(寬度與設(shè)備有關(guān),因?yàn)樵擁撁媸菣M屏展示,所以取設(shè)備的寬來計(jì)算)

正常情況下,進(jìn)入頁面

2. 頁面崩潰后,再次進(jìn)入頁面,返回 appWidth 為 2061

頁面崩潰后,再次進(jìn)入頁面

發(fā)現(xiàn)這個(gè)問題后,我都震驚了!??!
頁面方向仍是橫屏,為什么崩潰后返回的設(shè)備寬度值改變了?
而且變大了(導(dǎo)致頁面高度計(jì)算錯誤,出現(xiàn)了拉長的情況)

定位問題

多次復(fù)現(xiàn)(特意寫了一個(gè)數(shù)組下標(biāo)越界的bug),發(fā)現(xiàn)該值是固定值 2061 ,
也就是說該值可能是設(shè)備的一個(gè)參數(shù),考慮到可能會有橫屏的影響,
我斷點(diǎn)了設(shè)備的高度 appHeight 。

1. 正常情況下,設(shè)備的寬高值

看到這,你可能覺得完了,這里是2150 ,而不是2061,所以不是它!
你忽略了狀態(tài)欄的高度。
繼續(xù)往下看:

2. 崩潰后再次進(jìn)入頁面的設(shè)備寬高值

1080 !!!
要的就是 1080 ,設(shè)備真正的寬,但是現(xiàn)在appHeight的值是1080。
所以我取兩者最小值(如果你用高度,可以取最大值),再進(jìn)行計(jì)算。

            val systemHeight = if (appWidth > appHeight) appHeight else appWidth

            if (height < systemHeight - top) {
                height = systemHeight - top
                maxList.add(height)
            } else {
                maxList.add(height)
            }
            height = maxList.max()!!

bug解決了?。。?/p>


一直以為在特定屏幕方向時(shí),其設(shè)備寬高是一個(gè)固定值,看來不是?。?br> Resources.getSystem().displayMetrics.widthPixels 不是一個(gè)固定值

うずまき ナルト
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,192評論 3 119
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,115評論 1 92
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,921評論 25 709
  • 李云迪戀情疑曝光 與神秘女子約會吃火鍋親密牽手 近日,李云迪在橫店影視城被拍,他與一名妙齡女子一起出現(xiàn)在火鍋店,神...
    佛龕佛柜閱讀 396評論 0 0
  • 長相思難聚首,癡情人自尋苦。想拋開又回首,斬不斷情絲一縷縷。問蒼天情是何物?恨月老把紅線打糾糾,直叫世人感受離別苦。
    福子_3460閱讀 130評論 1 1

友情鏈接更多精彩內(nèi)容