Android 7.0+ popwindow的適配

長話短說,直接上代碼:

 override fun showAsDropDown(anchor: View?) {
        if (Build.VERSION.SDK_INT >= 24) {
            val rect = Rect()
            anchor!!.getWindowVisibleDisplayFrame(rect)
            val h = anchor.resources.displayMetrics.heightPixels - rect.bottom
            height = h
        }
        super.showAsDropDown(anchor)
    }

在自定義popwindow中復(fù)寫此方法即可得到適配,并且適配全面屏,以往的用achor.getGlobalVisibleRect會造成全面屏的適配問題,注意不要用錯方法。

使用getGlobalVisibleRect的全面屏顯示.png
使用getWindowVisibleDisplayFrame的全面屏顯示.png

說明:網(wǎng)絡(luò)上大多數(shù)都是用的global的方法導(dǎo)致很多情況下全面屏顯示不好,底部虛擬按鍵位置空出,所以正確的方法應(yīng)該用WindowVisibalDisplay。

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,753評論 25 709
  • 有效繼續(xù) 無效改變 ,跟孩子講道理是 沒有用的 要避免大道理 孩子道理懂的 比我們都多, 6個字 管住嘴 管...
    陳_8749閱讀 103評論 0 0
  • 本文是戰(zhàn)隼老師在喜馬拉雅FM的《戰(zhàn)隼:無需意思志力的習(xí)慣養(yǎng)成法-100天行動》的筆記。如需要原文,請收聽節(jié)目。如有...
    西西西西力閱讀 258評論 0 1
  • 五月最后幾天辭職了,到現(xiàn)在差不多30天了,一直在家待著,還沒有找到新工作。 關(guān)于為什么辭職,因為不開心。每天起床都...
    一個負能量的小透明閱讀 225評論 0 0
  • 天黑了,作為一個正常的孩子,應(yīng)該怕黑,這個時候應(yīng)該在家看看動畫片,吃吃晚飯。而你遇見一個去而復(fù)返的孩子。他回學(xué)校的...
    阿雒閱讀 328評論 0 0

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