Android findViewHolderForAdapterPostion返回null

时间:2016-03-30 13:23:17

标签: android android-recyclerview material-design

我希望使用以下代码获取我的RecyclerView第一个完全可见项目的Viewholder:

myRecyclerView = (RecyclerView) findViewById(R.id.recycler_demo);
myRecyclerView.setHasFixedSize(true);
myLayoutManager = new LinearLayoutManager(getApplicationContext())
myRecyclerView.setLayoutManager(myLayoutManager);
LinearCardListAdapter myAdapter = new LinearCardListAdapter(getApplicationContext(), initilizeData());
myRecyclerView.setAdapter(myAdapter);
ImageView iv = new ImageView(this);
int adapterPosition = myLayoutManager.findFirstCompletelyVisibleItemPosition();
RecyclerView.ViewHolder visibleViewHolder = myRecyclerView.findViewHolderForAdapterPosition(adapterPosition);

在这种情况下,visibleViewHolder为空。

我也试过findViewHolderForAdapterPosition,数字从0到7(我的数据集从0到7,有8个数据),我又得到了null;

任何解决方案?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

   myRecyclerView.postDelayed(new Runnable()
            {
                @Override
                public void run()
                {
                    if(myRecyclerView.findViewHolderForAdapterPosition(0)!=null )
                    {

                        RecyclerView.ViewHolder visibleViewHolder=myRecyclerView.findViewHolderForAdapterPosition(0);
                    }
                }
            },50);