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 } }
- Android Koltin将微调值传递给可变列表
- Android LiveData:MutableData从不处于活动状态
- Kotlin:运行Hello程序时得到ClassNotFoundException
- Kotlin的数据类,Android室和自定义setter
- 未解决的参考:LinearLayoutManager / RecyclerView
- gradle项目同步失败的基本功能将无法正常工作在android studio 3.0
- 有没有办法打开与Java私人窗口/隐身窗口中的URL?
- 错误:error.NonExistentClass Kotlin在多模块Dagger项目中
- 如何使用Anko DSL制作通用AppBar?