長話短說,直接上代碼:
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。