Android --- Fragment 的生命周期
·
Fragment的生命周期
Fragment的生命周期包含了几个关键的阶段,如下图所示:
OnAttach(Activity activity): 当Fragment被加入到Activity时调用。
onCreate(Bundle savedInstanceState): 创建Fragment时调用,在此可以执行初始化工作。
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState): 创建Fragment的布局时调用。
onViewCreated():当 Fragment 的视图被创建后调用。在这个方法中,你可以执行与视图相关的逻辑,比如设置监听器、初始化数据等。
初始化视图内各个控件
onActivityCreated()
onStart(): 当Fragment变为可见时调用。
onResume(): 当Fragment与用户交互时调用。
onPause(): 当Fragment不再与用户交互时调用。
onStop(): 当Fragment不再可见时调用。
onDestroyView(): 当Fragment的布局被移除时调用。
onDestroy(): 销毁Fragment时调用。
onDetach(): 当Fragment被从Activity移除时调用。
以下是一个简单的Fragment生命周期的代码示例:
public class MyFragment extends Fragment {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// Fragment已经和Activity关联
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Fragment创建
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// 创建Fragment的布局
View rootView = inflater.inflate(R.layout.fragment_my, container, false);
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Activity创建完毕
}
@Override
public void onStart() {
super.onStart();
// Fragment现在处于可见状态
}
@Override
public void onResume() {
super.onResume();
// Fragment和用户可交互
}
@Override
public void onPause() {
super.onPause();
// Fragment不再和用户交互
}
@Override
public void onStop() {
super.onStop();
// Fragment不再可见
}
@Override
public void onDestroyView() {
super.onDestroyView();
// Fragment的布局被移除
}
@Override
public void onDestroy() {
super.onDestroy();
// Fragment销毁
}
@Override
public void onDetach() {
super.onDetach();
// Fragment和Activity解除关联
}
}
在实际应用中,你可以重写这些方法来执行特定的操作,比如数据加载、资源释放、用户交互处理等。记得在重写这些方法时调用父类相应的方法,以确保生命周期方法能够正常执行。
更多推荐
所有评论(0)