我的 Activity 正在显示一个带有 LinearLayoutManager
的 RecyclerView
。我想获取列表中的第一项 (View
)。根据this post's accepted answer ,我可以调用 LinearLayoutManager.findViewByPosition()
方法,但我得到的是 null
。为什么?
RecyclerView list = findViewById(R.id.list);
LinearLayoutManager llm = new LinearLayoutManager(this);
list.setLayoutManager(llm);
MyAdapter adapter = new MyAdapter();
list.setAdapter(adapter);
View firstViewItem = llm.findViewByPosition(0); // <-- null
adapter
包含项目,它不是空的。
最佳答案
一个有用的函数是 doOnPreDraw - 您应该在 RecyclerView 上调用它并将您的代码放在那里。
rv.doOnPreDraw {
// now it will work...
val view = llm.findViewByPosition(0)
}
关于android - LinearLayoutManager.findViewByPosition() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46326681/