0
我想我RecyclerView與此代碼第一個完全可見項Viewholder:的Android findViewHolderForAdapterPostion返回null
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個數據),我再次得到空;
任何解決方案?
既然你叫'notifyDataSetChanged()'在它之前,你'null',因爲佈局還沒有準備好。 「請注意,當適配器內容發生變化時,ViewHolder位置不會更新,直到下一次佈局計算。如果有未決的適配器更新,則此方法的返回值可能與您的適配器內容不匹配。您可以使用#getAdapterPosition()獲取當前一個ViewHolder的適配器位置。「[doc](https://developer.android.com/intl/zh-cn/reference/android/support/v7/widget/RecyclerView.html#findViewHolderForAdapterPosition(int)) – yennsarah
可能的重複[Android的recyclerView findViewHolderForAdapterPosition返回null](http://stackoverflow.com/questions/32836844/android-recyclerview-findviewholderforadapterposition-returns-null) – yennsarah
@Amy嗨'notifyDataSetChanged()'不在我的代碼我忘了刪除它在問題中,但它不在我的代碼中。所以這不是問題 –