В этом случае нижний лист представляет собой BottomSheetDialogFragment
, а BottomSheetDialog
, которым он управляет, действительно является Dialog
; совершенно отдельное окно от окна Activity
. PopupWindow
ассоциируется с неправильным окном, поэтому он отображается за BottomSheetDialog
.
. View
, переданный PopupWindow
show*()
методам, используется для определения того, какое окно связать PopupWindow
с. В данном фрагменте:
popup.showAtLocation(layout, Gravity.TOP | Gravity.LEFT, p.right, p.top + 15);
layout
- это View
, раздутый, чтобы действовать как содержимое PopupWindow
, и поэтому он еще не прикреплен ни к какому окну, поэтому он не знает, покажите над BottomSheetDialog
.
Исправление состоит в том, чтобы просто передать showAtLocation()
a View
, любой View
, который в данный момент присоединен к BottomSheetDialog
, когда выполняется вызов:
popup.showAtLocation(view, Gravity.TOP | Gravity.LEFT, p.right, p.top + 15);