android - LinearLayoutManager.findViewByPosition() 返回 null

标签 android android-recyclerview linearlayoutmanager

我的 Activity 正在显示一个带有 LinearLayoutManagerRecyclerView。我想获取列表中的第一项 (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/

相关文章:

java - Android 泛型错误 : The method is not applicable for the arguments

android - 刷新 recyclerview 时出现 NullPointerException

android - 设置适配器后 RecyclerView 的大小不会改变

将支持库更新到 23.3.0 后,Android 自定义线性布局管理器返回 0 项计数

android - 无法执行 dex : Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;

android - Toast 不显示在 OnItemCLick 中

android - 为什么我的这个 ImageView 的 OnClick 不起作用?

android - 多个 RecyclerView 的同步滚动

android - RecyclerView 项目失去焦点

Android:应用程序重新打开后恢复 RecyclerView 项目位置