android - 如何将 popupWindow 显示为 Recyclerview 行元素的下拉 onClick?

标签 android android-recyclerview popupwindow

我已经尝试使用一个工作正常的代码,除了当我点击 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);
}

Here is the screenshot of the problem I am facing. That popupWindow showing off Screen of the device.

最佳答案

我建议您选择接受 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/

相关文章:

Android - Firebase 身份验证失败

java - 如何像在 Notification 中一样展开和折叠 RecyclerView 中的项目

Android Adapter onItemClick on RecyclerView 影响多个View item

java - 为什么在切换 fragment 时,recyclerview 丢失了?

android - 检测 PopupWindow 是否在 ScrollView 之上

java - 未调用来自 PopupWindow 的 Android ListView 的 setOnItemClickListener

java - 如何解决条码扫描错误的问题?

Android native 代码分析

android - 我可以在不使用监听器的情况下获取触摸坐标吗?

javascript - 如何在不知道子弹出窗口句柄名称的情况下访问它们?