diff --git a/library/src/main/java/com/cpiz/android/bubbleview/BubblePopupWindow.java b/library/src/main/java/com/cpiz/android/bubbleview/BubblePopupWindow.java index 15510b4..6da7afc 100644 --- a/library/src/main/java/com/cpiz/android/bubbleview/BubblePopupWindow.java +++ b/library/src/main/java/com/cpiz/android/bubbleview/BubblePopupWindow.java @@ -176,8 +176,8 @@ public void showArrowTo(View anchor, ArrowDirection direction, int margin) { public void showArrowTo(View anchor, RelativePos relativePos, int marginH, int marginV) { dismiss(); - final int screenWidth = Resources.getSystem().getDisplayMetrics().widthPixels; - final int screenHeight = Resources.getSystem().getDisplayMetrics().heightPixels; + final int screenWidth = anchor.getResources().getDisplayMetrics().widthPixels; + final int screenHeight = anchor.getResources().getDisplayMetrics().heightPixels; final int navigationBarHeight = getNavigationBarHeightDelta(anchor); final Rect anchorRect = getRectInWindow(anchor); diff --git a/library/src/main/java/com/cpiz/android/bubbleview/Utils.java b/library/src/main/java/com/cpiz/android/bubbleview/Utils.java index cd57261..b6f2268 100644 --- a/library/src/main/java/com/cpiz/android/bubbleview/Utils.java +++ b/library/src/main/java/com/cpiz/android/bubbleview/Utils.java @@ -50,6 +50,10 @@ public static int dp2px(int dp) { public static int getNavigationBarHeight(View view) { Activity activity = getActivity(view); if (activity != null) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && activity.isInMultiWindowMode()) { + // 小窗展示时没有NavigationBar,直接返回0 + return 0; + } // 方法一 { Display display = activity.getWindowManager().getDefaultDisplay();