Android 7.0 popupwindow位置問題
阿新 • • 發佈:2019-01-06
我們在Android開發中經常會使用到PopupWindow來顯示內容,在Android7.0以前。
// 定義一個PopupWindow變數,並設定寬、高
PopupWindow popupWindow = new PopupWindow(mWidth, mHeight);
popupWindow.setFocusable(true);
// 在某個控制元件下方彈出
popupWindow.showAsDropDown(anchorView);
在7.0中這裡的寬和高如果設定得過大,彈出的PopupWindow會覆蓋當前的視窗而覆蓋整個手機螢幕,並不是在anchorView的下方彈出來。 因此,為了解決這個問題,我們可以換一種方式來彈出PopupWindow。
// 定義一個PopupWindow變數,並設定寬、高
PopupWindow popupWindow = new PopupWindow(mWidth, mHeight);
popupWindow.setFocusable(true);
// 在某個控制元件下方彈出
popupWindow.showAtLocation(anchorView,Gravity.LEFT,0,mNotificationBarHeight+anchorView.getHeight());
這裡使用showAtLocation()來彈出PopupWindow,注意設定好x、y的偏移量(x、y預設值是0,即父視窗的左上角)。