我如何在Android PopupWindow中使RecyclerView工作?

我如何在Android PopupWindow中使RecyclerView工作?,android,android-recyclerview,popupwindow,Android,Android Recyclerview,Popupwindow,我读过好几个类似的问题,但我无法回答任何问题。症结在于 val popupMenu = findViewById<RecyclerView>(R.id.popmenu) val popupMenu=findViewById(R.id.popmenu) 始终返回null 这里是activity_popup.xml 您可能正在活动中运行此代码,并且findViewById()在活动的视图层次结构中查找视图。您应该搜索膨胀视图的层次结构 val popupMenu = popupV

我读过好几个类似的问题,但我无法回答任何问题。症结在于

val popupMenu = findViewById<RecyclerView>(R.id.popmenu)
val popupMenu=findViewById(R.id.popmenu)
始终返回null

这里是activity_popup.xml


您可能正在活动中运行此代码,并且
findViewById()
在活动的视图层次结构中查找视图。您应该搜索膨胀视图的层次结构

 val popupMenu = popupView.findViewById<RecyclerView>(R.id.popmenu)
val popupMenu=popupView.findviewbyd(R.id.popupMenu)
我做错了什么

您正在尝试在当前视图层次结构中查找视图。您需要查看PopupWindow的层次结构

//膨胀未附加到任何内容的布局
val popupView=充气机。充气(R.layout.activity_弹出窗口,空)
//使用未附加到任何对象的给定popupView创建PopupWinow
popupWin=PopupWindow(popupView、popupWidth、popupWidth、true)
val layoutMgr=LinearLayoutManager(applicationContext)
//尝试在*此*视图层次结构中查找回收器视图,该层次结构不存在
val popupMenu=findViewById(R.id.popmenu)
要修复:
将最后一行更改为
popupView.findViewById(r.id.popmenu)
以便在正确的视图层次结构中进行搜索。

这是否回答了您的问题?
// Inflates a layout that's not attached to anything
val popupView = inflater.inflate(R.layout.activity_popup, null)

// Creates a PopupWinow with the given popupView that's not attached to anything
popupWin = PopupWindow(popupView, popupWidth, popupHeight, true)

val layoutMgr = LinearLayoutManager(applicationContext)

// Attempts to find the recycler view in *this* view hierchy, which does not exist
val popupMenu = findViewById<RecyclerView>(R.id.popmenu)