2

RecyclerViewに可変数のViewHoldersが表示されていて、それぞれに固有のCountDownTimerがTextViewに表示されています。RecyclerView ViewHoldersの多くのCountDownTimersでエラーが発生する

RecyclerViewに多数のViewHoldersがない場合、CountDownTimersは期待どおりに秒単位でチェックします。

ただし、RecyclerViewに多数のアイテム(> 10程度)があると、私の問題が発生します。 RecyclerViewでアクティビティを開くと、CountDownTimersが正常に機能していることがわかりますが、RecyclerView全体を上下にスクロールするとCountDownTimersが機能しなくなります。

誤動作とは、それらが変動することを意味します。たとえば、1つのCountDownTimerが20:15を表示してから30:16にジャンプし、20:14に戻り、30:15に戻ります。それは非常に奇妙です。

私はRecyclerViewをスクロールするとCountDownTimersのViewHoldersは消えますがCountDownTimersは破棄されず、それらのViewHoldersにスクロールすると複数のCountDownTimersが表示されるTextViewsに割り当てられますそれぞれのカウントダウン。

私の問題は実際には問題だと思うが、RecyclerView ViewHoldersのCountDownTimersを過去にスクロールしているので、どのように取り消すべきですか? RecyclerViewについての私の理解から

+0

この回答を見る、あなたを助けるかもしれないhttp://stackoverflow.com/a/31060029/6414107 – SaravInfern

答えて

1

:それは表示プラススムーズスクロールのための1つまたは複数の追加の必要があるとして

RecyclerViewが多くとしてviewHoldersを作成します。新しい項目を表示する必要があるときは、未使用のviewHolderが存在するかどうかをチェックします。存在していた場合は既存のものを再利用し、そうでなければ新しいものを作成します。

非常に長くスクロールすると、カウントダウンを開始する可能性がある既存のviewHolderを使用しようとします。新しいアイテムがバインドされると、別のカウントダウンが開始されます。それはなぜそれが誤動作を示すか。

したがって、カウントダウンを開始する前に、&停止カウントを追加することができます。それがあなたを助けることを願っています。

ありがとうございます。

関連する問題