1

私は、Android Play ストア アプリケーションまたはこのアプリに似たアプリを開発する必要がありました。私は多くのチュートリアルを読み、これと同様の例を含むほぼすべてのチュートリアルを見つけました。

私は自分のアプリから始めて、上記の例に示されているすべての静的データを含むフラグメントを使用してサンプル ViewPager を実行しました。ここで、WS データを Playstore アプリまたは上記のサンプル アプリとして取得したいと考えています。サンプルを作成しましたが、1,2 フラグメントのフラグメント データのみが保存され、3 番目のフラグメントに移動すると 1 番目のフラグメントが失われ、4 番目のフラグメントに移動すると 2 番目のフラグメントが失われます。

上記のアーキテクチャを実現し、それを成し遂げる方法。

更新しました:

FragmentPagerAdapter を使用していますが、2 つまたは 3 つのフラグメント データのみを保存しています。

4

2 に答える 2

3

使用できます ViewPager.setOffscreenPageLimit(int limit)

アイドル状態でビュー階層の現在のページの両側に保持するページ数を設定します。この制限を超えるページは、必要に応じてアダプターから再作成されます。

デフォルトの制限は 1 です。これは最小制限でもあります (スライド アニメーションに必要)。

于 2013-01-31T08:51:25.100 に答える
1

フラグメント自体の内部にあるある種のソースからデータをフェッチする必要があります。したがって、フラグメントが表示されるようになると(つまり、onCreateView呼び出されると)、フラグメントはそれ自体にデータを入力する必要があります。

ネットワークを使用している場合は、次のことを行う必要があります。

  1. 以前のネットワークリクエストからキャッシュされたデータを(またはSQLiteデータベースに直接取得しますContentProviderが、以下の説明にのみ適しています)。ContentProvider

  2. Serviceサーバーからのアップロードを実行するために独自に開始します。

  3. データがロードされたらすぐに、データをに保存しますContentProviderContentProviderプロセスの境界を越えて作業しているため、ここでのみ適しています。ただし、ContentProviderそれ自体はSQLit`データベースに基づくことができます(通常はそうです)。

  4. データがロードされ、フェッチの準備ができていることをフラグメントに通知します(通常はにバインドしService、その状態をリッスンします)。

  5. からデータを取得しますContentProvider(1と同じ)

もちろん、これが唯一の方法ではありません(しかし私はそれを好みます)。Google I \ Oのビデオをご覧ください(これについては簡単に説明しました)。

于 2013-01-31T08:37:33.630 に答える