0
を返します。アンドロイドfindViewHolderForAdapterPostionは、私はこのコードで私のRecyclerViewの最初の完全に表示されるアイテムのViewholderを取得したいヌル
findViewHolderForAdapterPosition
私は0から7までの数値で試しました(私のデータセットは0から7の8データです)。
どのような解決策ですか?
を返します。アンドロイドfindViewHolderForAdapterPostionは、私はこのコードで私のRecyclerViewの最初の完全に表示されるアイテムのViewholderを取得したいヌル
findViewHolderForAdapterPosition
私は0から7までの数値で試しました(私のデータセットは0から7の8データです)。
どのような解決策ですか?
あなたがこれを行うことができます。レイアウトはまだ準備ができていないので、あなたが `notifyDataSetChanged(呼び出すので
myRecyclerView.postDelayed(new Runnable()
{
@Override
public void run()
{
if(myRecyclerView.findViewHolderForAdapterPosition(0)!=null)
{
RecyclerView.ViewHolder visibleViewHolder=myRecyclerView.findViewHolderForAdapterPosition(0);
}
}
},50);
)は'その前に、あなたは、 'null'なのでを取得します。アダプタの内容が変更された場合、ViewHolderの位置は次回のレイアウト計算まで更新されませんアダプタの更新が保留されている場合、このメソッドの戻り値はアダプタの内容と一致しない可能性があります#getAdapterPosition() ViewHolderのアダプタの位置」を参照してください。 – yennsarah
可能な複製は次のとおりです。[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
@Amyこんにちは 'notifyDataSetChanged()'は私のコードにありませんでした私はそれを削除することを忘れました質問にはそれが私のコードではありません。だから問題ではない –