我希望使用以下代码获取我的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;
任何解决方案?
答案 0 :(得分:0)
你可以这样做:
myRecyclerView.postDelayed(new Runnable()
{
@Override
public void run()
{
if(myRecyclerView.findViewHolderForAdapterPosition(0)!=null )
{
RecyclerView.ViewHolder visibleViewHolder=myRecyclerView.findViewHolderForAdapterPosition(0);
}
}
},50);