android - 在 RecyclerView Adapter 布局项顶部显示 PopupWindow

标签 android android-layout android-recyclerview android-popupwindow

我在 RecyclerView 中显示 JSON 数据,我在 RecyclerView 项目上添加了长按操作,显示 PopupWindow 。我想显示 PopupWindow当我长按每个 Recyclerview 项目的顶部时。

但 PopupWindow 仅显示在父屏幕的顶部,而不显示在 Recyclerview 项目的顶部。

我希望 PopupWindow 应显示在每个 RecyclerView 项目布局的顶部。

这是我显示 PopupWindow 的代码

private void PopUpWindowOption(LinearLayout mainLayout)
    {

        View customView = LayoutInflater.from(context).inflate(R.layout.popup,null);

        Button closePopupBtn = (Button) customView.findViewById(R.id.closePopupBtn);

        final PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);



        closePopupBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                popupWindow.dismiss();
                Toast.makeText(context,"clicked",Toast.LENGTH_SHORT).show();
            }
        });

        popupWindow.showAtLocation(mainLayout, Gravity.TOP, 0, 0);

    }

输出

enter image description here

我怎样才能实现这个目标,帮助我。 谢谢

最佳答案

您当前使用的是:

popupWindow.showAtLocation(mainLayout, Gravity.TOP, 0, 0);

您要使用的是:

popupWindow.showAsDropDown(anchor, offsetX, offsetY, gravity);

上面的代码显示了相对于指定 anchor View 的弹出窗口。您可以在 OnClick 或 OnLongClick 事件时使用项目的 View 。 这将显示为相对于该项目的下拉列表。如果你想将其显示在itemView之上,你可以通过改变offsetY的值来相应地改变它。 像:

popupWindow.showAsDropDown(anchor, 0, -anchor.getHeight() + popupView.getHeight());

关于android - 在 RecyclerView Adapter 布局项顶部显示 PopupWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50246299/

相关文章:

java - List<String> addAll() 方法未添加

java - 当用户成功使用Google登录时,如何在FirebaseDatabase中获取用户信息?

android - BottomSheetDialog 在 Android 10 上即使处于隐藏状态也能在底部可见

java - 从 ListView 获取子项会导致 android.view.View android.view.View.findViewById(int) 出现空对象引用

java - 从recycleview中获取cardview中textview的值

java - 如何从RecyclerView的所有TextView中获取文本

android - 处理多线程和 Realm 的正确方法是什么?

Android - 一定时间后重定向到另一个屏幕

java - 无法检索另一个类中的字符串值

android - 在自定义 View 中设置 textSize 会产生巨大的文本