我已经尝试使用一个工作正常的代码,除了当我点击 recyclerview
的最后一行或最后一行时,popupWindow
打开 offscreen
。有什么方法可以显示 recyclerview
末尾 View 的 popupWindow
upSide
。
这是我正在使用的代码:
public void showPopup(View v, int _pos) {
LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.popup_row_appointment_option, null);
popupWindow = new PopupWindow(
popupView,
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
//TODO do sth here on dismiss
}
});
popupWindow.showAsDropDown(v, v.getScrollX(), v.getScrollY());
tv_view_profile = (TextView) popupView.findViewById(R.id.tv_view_profile);
tv_view_profile.setOnClickListener(this);
}
最佳答案
我建议您选择接受 AnchorView 的 PopupMenu -> 使用它我们可以获得我们想要显示弹出窗口的确切位置 -> 您可以将 AnchroView 作为 View 传递(三点 ImageView )
这是一个很好的例子:
https://www.javatpoint.com/android-popup-menu-example
另外请使用 Appcompat 版本在菜单中获取Material touch。
好的自定义布局,您只需稍作更改即可使用常规流程 --
popup.showAtLocation(anchorView, Gravity.BOTTOM, 0,
anchorView.getBottom() - 60);
这只是底部重力的一个例子。您可以根据您的代码设置引力和边距。
anchorView = 您要显示此弹出窗口的 View 。试试这个,如果您有任何疑问,请告诉我。
关于android - 如何将 popupWindow 显示为 Recyclerview 行元素的下拉 onClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47324923/