我在 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);
}
输出
我怎样才能实现这个目标,帮助我。 谢谢
最佳答案
您当前使用的是:
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/