Android フラグメントの遅延読み込みの実装方法
AndroidにおけるFragmentの遅延読み込みは、次のように実現できます。
- フラグメントに、フラグメントが一度でもデータを読み込んだかどうか判断するためのフラグを追加する。
private boolean isLoaded = false;
- onCreateView()
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout, container, false);
if (!isLoaded) {
// 执行数据加载逻辑
loadData();
isLoaded = true;
}
return view;
}
- onHiddenChanged()
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden && !isLoaded) {
// 执行数据加载逻辑
loadData();
isLoaded = true;
}
}
上記の手順により、Fragmentの遅延読み込みを実現できます。初回Fragmentが表示されるとデータ読み込みロジックが実行され、その後そのFragmentに切り替えても、Fragmentが表示されていてかつデータがまだ読み込まれていない場合にのみデータ読み込みロジックが実行されます。