После изучения исходного кода и стилей AppCompat я понял, почему он не работает.Ниже приведен рабочий вариант:
if (R.id.action_filter == item.getItemId()) {
View filterView = getActivity().findViewById(R.id.action_filter);
assert filterView != null;
FilterWindow menu = new FilterWindow(getContext());
menu.showAsDropDown(filterView, 0, -filterView.getHeight());
return true;
}
private static class FilterWindow extends PopupWindow {
FilterWindow(Context context) {
super(context, null, R.attr.popupMenuStyle);
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.menu_filter, null);
setContentView(view);
setOutsideTouchable(true);
setFocusable(true);
}
}
Конечно, вам также нужно извлечь всплывающую тему вашего Toolbar
из ThemeOverlay.AppCompat.Light
.