モバイル ニュース クライアントを使用すると、誰もが発見するでしょう。ほとんどのニュース クライアントは、見出し、エンターテイメント、スポーツ、テクノロジーなどのニュースを分類します。このインターフェイスを実装するにはどうすればよいですか?これは実際には非常に簡単に実装できます。Fragment 内で複数の ViewPage の切り替えを実装し、ViewPage の上に TabLayout を配置し、それらを関連付けてリンク効果を実現します。不明な場合は、将来的に Fragments に複数の ViewPage を配置することについて具体的にブログを書くことができます。今日は主にインターフェイス、つまり Fragments の遅延読み込みを実装する方法を紹介します。そうすれば、ロード インターフェイスに直接ロードされるのに、なぜ遅延ロードを使用するのか、誰もが驚くでしょう。これには、遅延読み込みの利点について話す必要があります。前述したように、さまざまなニュース切り替えを実装するほとんどのニュース クライアントの原則は、複数の ViewPages を 1 つの Fragment に保存することです。プログラムに入った後にすべての ViewPages のデータがロードされると、間違いなく APP の実行時間は増加します。遅延読み込みでは、プログラムの開始時にフラグメント内のビューページが 1 つのインターフェイスのみをプリロードし、次のインターフェイスにスライドするまで待機し、次のビューページのデータをロードして、読み込みインターフェイス キャッシュを実装して、これに切り替えることを実現できます。次回インターフェイスはリロードされなくなります。さて、遅延読み込みが使用される理由を明確に説明しましょう。今日の本題に入りましょう。
ステップ 1: フラグメントをカスタマイズし、フラグメントを継承させます
1. setUserVisibleHint メソッドを書き換えます
2. 抽象メソッド LazyInitData() を定義します
package com.jereh.jinritoutiao.fragmentdemo.fragment; import android.support.v4.app.Fragment; /** * Created by zhangdi on 2016/8/8. */ public abstract class BaseFragment extends Fragment { protected boolean isVisible = false; @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser){ //加载数据 isVisible = true; lazyInitData(); }else { isVisible = false; } } public abstract void lazyInitData(); }
ステップ 2: まず、定義したフラグメントを継承する別のフラグメントを定義します
1フラグメントのステータスを保存するグローバル変数を定義し (このステップはキャッシュ インターフェイスの準備です)、フラグメントのビュー コントロールの準備ができていることと、現在のフラグメントがデータをロードしているかどうかを示す 2 つのブール変数を定義します
2. フラグメントのステータスを決定します。ステータスが空であるかどうかを確認し、空の場合は、新しいインターフェイスが生成されます。 3. 親クラスの LazyInitData() メソッドを書き換えて、ここでのメソッド (new android.os.Handler()) を実装します。 ).postDelayed(new Runnable()) は、マルチスレッドを使用して非同期読み込みを実装するため、レイアウトが初期化されるときに、インターフェイス コンポーネントを生成してからデータを読み込む時間があります。
この時点で、Android でのインターフェイス (フラグメント) データの遅延読み込みの目的は達成されました。将来的に複数のインターフェイス間で切り替える必要があり、データにネットワーク リクエストが必要な場合は、遅延読み込みを使用することをお勧めします。