2017-10-10 11 views
2

私のプロジェクトでは、ニュースのリストを読み込むアクティビティがあります。リストがロードされると、この活動には、リストの最初の項目の情報が移入されます。「情報をスワイプ」する方法は?

enter image description here

しかし、これはサーバからのすべてのニュースをロードするので、私は、ユーザーが交換できるようにしたいです彼の指でニュース。たとえば、ニュース[0]から開始し、ユーザーが左にスワイプすると、コンテンツはニュース[1]に変更されます。ユーザーはもう一度左にスワイプし、内容はニュース[2]に変更されます。ユーザーが右にスワイプすると、前のニュース(news [1])に戻ります。

enter image description here

は何この動作のための最高のaproach次のようになります。ヘッダーは、スワイプの動きのみメインフレーム(画像と身体が変更する必要があります)を持つべきではないのですか?私はViewPagerでTabLayoutを使用することを考えていましたが、これを行う正しい方法であるかどうかはわかりません。もし私が100のニュースのようなものを持っていれば、これはViewPagerの権利に100個の断片を読み込むための過労かもしれません。

これを行うにはAndroidが良い方法がありますか?私はこれをどのようにするべきですか?

+3

いいえ、100個の断片はまったく問題ありません。 'ViewPager'は常に少なくとも3つの読み込みページを保持しますが、それ以上の設定もできます。また、ページ数を実装して、特定の数のニュースを読み込むこともできます(例えば20、次に20など)。 –

+0

もう1つのオプションは、この回答のようなHorizo​​ntalLayoutManagerを持つRecyclerViewです:https://stackoverflow.com/a/28460399/4232337 これはもちろん、ViewPagerが提供する「スナップ」動作を望む場合には、あまり面白くありません – NSimon

答えて

3

これにはViewPagerを使用できます。 ViewPagerは、setOffscreenPageLimit(pageLimit)を使用して設定した分だけロードするので、100個のフラグメントを内部に持つことはまったく問題ありません。たとえば、pageLimit = 3と設定すると、ViewPagerは、現在表示されているフラグメントの左右にある3つ(最大6個)の隣接フラグメントのみを初期化します。そして、あなたがフラグメントをスワイプしている間、それはこの限界から外れているフラグメントを殺し、新しいものをロードします。だから、過度の過労はありません。

関連する問題