2016-03-30 18 views
0

を返します。アンドロイドfindViewHolderForAdapterPostionは、私はこのコードで私のRecyclerViewの最初の完全に表示されるアイテムのViewholderを取得したいヌル

findViewHolderForAdapterPosition私は0から7までの数値で試しました(私のデータセットは0から7の8データです)。

どのような解決策ですか?

+0

)は'その前に、あなたは、 'null'なのでを取得します。アダプタの内容が変更された場合、ViewHolderの位置は次回のレイアウト計算まで更新されませんアダプタの更新が保留されている場合、このメソッドの戻り値はアダプタの内容と一致しない可能性があります#getAdapterPosition() ViewHolderのアダプタの位置」を参照してください。 – yennsarah

+1

可能な複製は次のとおりです。[doc](https://developer.android.com/intl/zh-cn/reference/android/support/v7/widget/RecyclerView.html#findViewHolderForAdapterPosition(int)) [Android recyclerView findViewHolderForAdapterPositionがnullを返す](@stackoverflow.com/questions/32836844/android-recyclerview-findviewholderforadapterposition-returns-null) – yennsarah

+0

@Amyこんにちは 'notifyDataSetChanged()'は私のコードにありませんでした私はそれを削除することを忘れました質問にはそれが私のコードではありません。だから問題ではない –

答えて

0

あなたがこれを行うことができます。レイアウトはまだ準備ができていないので、あなたが `notifyDataSetChanged(呼び出すので

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

         RecyclerView.ViewHolder visibleViewHolder=myRecyclerView.findViewHolderForAdapterPosition(0); 
        } 
       } 
      },50); 
関連する問題