notifyItemChanged后面的RecyclerView中PopupWindow的位置错误

我有另一个RecyclerView里面的RecyclerView。 点击内部的RecyclerView的项目,像下面那样显示PopupWindow。 在这里输入图像描述

当用户点击弹出内的按钮时,外部RecyclerView的项目应该更新数据。 问题是,在更新外部项目notifyItemChanged(position) ,PopupWindow显示在片段的左上角,而不是内部RecyclerView的下面项目。

在这里输入图像描述

 override fun onBindViewHolder(holder : MessageItemHolder, messagePosition : Int) { val item = messages[messagePosition] //Display some data if(item.isRateViewOpened) showRatePopup(holder, messagePosition, item) holder.tvMessage.setOnLongClickListener { showRatePopup(holder, messagePosition, item) true } } private fun showRatePopup(holder : MessageItemHolder, messagePosition : Int, message : Message) { messages[messagePosition].isRateViewOpened = true val rateView = layoutInflater.inflate(R.layout.popup_rate, null) setRateIcons(message.status, rateView) rateView.ibLike.setOnClickListener { displayRateStatus(RateStatus.LIKE, message, messagePosition, rateView) } rateView.ibDislike.setOnClickListener { displayRateStatus(RateStatus.DISLIKE, message, messagePosition, rateView) } val popupWindow = PopupWindow(rateView, FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, true) popupWindow.setBackgroundDrawable(ColorDrawable()) popupWindow.isOutsideTouchable = true val location = IntArray(2) holder.tvMessage.getLocationOnScreen(location) popupWindow.showAsDropDown(holder.tvMessage, 0, 0, Gravity.NO_GRAVITY) popupWindow.setOnDismissListener { messages[messagePosition].isRateViewOpened = false } }