2017-03-14 2 views
0

私はFacebookやTwitterのようなアクティビティフィードを実装しています。私はxのバッチでニュースフィード項目を取り出します(私はRelayJSを使います、xは接続のページサイズです)。しかし、リストビューでの読み込みのために、多くのアイテムがニュースフィード用に取得されますが、ユーザーはそれらを表示するために最後までスクロールしません。ユーザーが実際に見たニュースフィードの項目を特定して、それらを繰り返さないようにして、次回にアプリをリフレッシュまたは開くときに、取得されたものの下にある新しいものとその下に表示されるもののみを表示する?より簡単な解決法は、見たようにフェッチされたすべてのx個のアイテムを破棄することです。リアクションネイティブ:ユーザが自分のアクティビティフィードで見た投稿をマーク

この情報はどのように保存されていますか? numUsersのテーブルX numItems boolean?そのようなアイテムのセット?

答えて

0

これは実装によって大きく異なります。最も単純なものは、最後のログイン後に生成された情報だけをユーザーに返します。

実際にユーザーが実際に見た情報を実際に把握したい場合は、もっと複雑であると思います。すべてのアイテムIDと、ユーザーがそれを見たかどうかを確認するフラグを格納するように。

次に、あなたが見たことのない最初のアイテムをマークするために、アプリケーションのクローズをクリーンアップすることができます。例えば: 5アプリを閉じる際

見 9見 8見 7見 6を見ていない見ていない見 3を見ていない見ていない

1、あなたはそのストアID 5で始まるそれらを示す必要があります。

+0

私はまた、アイテム3,6,7,8,9が見られたことを検出する方法が欲しいです。それらをマウントすることは、それらが見られたことを暗示するものではありません。どの項目がビューポートに来たのかを知るには、スクロールの高さを追跡する必要がありますか? – user3740387

+0

あなたはonLayoutイベントでそれらを追跡できると思います。私は、 "見た"とはユーザーが項目をスクロールしたことを意味します。それを行うもう一つの方法は、はい、あなたがちょうど言った方法です。あなたはリストビューの位置を照会し、アイテムが見えるかどうかを決定するためにどこで使用するかを計算することができます。あなたは多くの仕事のようです。 – sfratini

関連する問題