2017-08-29 19 views
1

無限のリストを作成したいのですが、リストの最後までスクロールすると、リストには最初のアイテム、2番目のアイテム、最後に()が表示されます。次のように:Androidの無限リスト

まず、私が望むようにリストを倍増させることが私の心にあります。 残念ながら、私のリストのサイズはますます大きくなり、大きなリストを読み込むことはパフォーマンスには良くない(明らかに)ので、悪い考えです。 このケースを処理するための他のソリューションを紹介してもらえますか?どうもありがとうございました 。

+0

解決策は見つかりましたか?そして、あなたは提案された変種になぜ反応しないのですか? –

答えて

1

RecyclerViewを使用すると、いくつかのステップで必要なものを達成できます。アイデアはアダプタのアイテム数を無限に設定し、最初のアイテムを無限の真ん中に配置することです。

あなたのAdapterでは、getItemCount()メソッドをこのように置き換えます。

@Override 
public int getItemCount() { 
    return Integer.MAX_VALUE;// Not the infinity, but I'm not sure someone will scroll about 2 million items and find out that's a cheat 
} 

次にあなたがRecyclerViewを使用するクラスで、LayoutManagerを取得し、アダプタitemCountの真ん中に開始位置を設定します。

LinearLayoutManager layoutManager = getLayoutManager(); 
    int pos = (Integer.MAX_VALUE/2); //Voila, you are in the middle of infinity 
    layoutManager.scrollToPosition(pos); 
    yourAdapter.setLayoutManager(layoutManager); 

は、これを行うことによって、あなたは、コンテナのサイズが増加し、パフォーマンスの問題もなく、約2 000 000スクロールまでの任意の方向にあなたのリストをスクロールすることができます。

+0

recuclerViewとは何ですか? RecyclerViewは、そうですか? – Btnisme123

+0

はい、ご容赦ください!既に編集済み。 –

0

ユーザーがページの下部に到達すると、リストを更新する必要があります。 オンスクロールリスナーでページの終了を追跡できます。 ユーザーがページの下部に到達すると、リストの2倍になります。 各行の各項目のデータを保存または表示する必要があるため、リストを拡張またはダブルする必要があります。 ページ区切りの概念でも同じことが起こります。 私たちは本当に必要なときに私たちが拡大しているリストを不要に拡張していないことを明らかに理解しています。

このlinkには、AdapterViewsとRecyclerViewを使用した無限スクロールがあります。

+0

"あなたのリストを拡張するか二重にする必要がある"あなたのアイデアは分かりましたが、もし私がさらにスクロールすると:リストの最後までスクロールすると新しいリストの始めが表示されます私はより多くをスクロールする、私はリストを育てることを止めるためにリストAを削除すべきです、それは本当ですか? ) – Btnisme123

0

使用onScrollListener()最後に着いたときと、はlist.size()+ VisibleItems(表示されているリストの最後の項目)を使用し、アレイ上の最初にそれらを入れて、非常にブリーフィングのため
申し訳ありませんが、あなたのアダプタのデータを更新説明 !!!

関連する問題