2016-09-27 11 views
0

RecyclerViewでは、必要に応じてonCreateViewHolderメソッドが新しいビューホルダーを作成します。私はそれがあなたのリストに画面に収まるような項目があるので、何度も呼び出されることを知っています。しかし、何らかの奇妙な理由のために、私が自分のRecyclableListをスクロールダウンすると、 `onCreateViewHolderがもう何度か呼び出されます。なぜそれは新しいviewHolderを作成するのですか?どのような場合にviewHolderが作成されますか?私は一度だけ呼び出される必要があると思った。RecyclerView - スクロール時にonCreateViewHoldersが複数回呼び出される

logcat:

09-27 16:39:20.805 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.814 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.817 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.818 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.822 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.825 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.826 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 

私は下にスクロールするときに、これらの呼び出される:

09-27 16:39:20.827 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.828 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 
09-27 16:39:20.830 8603-8603/teamtreehouse.com.myapplication D/testHourViewHolder: I AM INVOKED 

答えて

1

RecyclerViewのポイントは、それが中のオブジェクトのあなたの全体のリストを保持する必要がないということですいつもの記憶。つまり、リスト項目のViewHoldersは(ほとんどの場合)画面の表示になるまで作成されません。したがって、最初にアクティビティを起動すると、ビュー内のすべてのViewHolders(吃音を防ぐためのわずかなしきい値)が作成されます。それ以外の場合は、スクロールすると下のビューが生成されます。

関連する問題