Android开发 Fragment的生命周期的介绍

文章目录

    • 1、Fragment的生命周期的介绍
    • 2、Fragment生命周期的特点
    • 3、Fragment使用建立与使用方法

1、Fragment的生命周期的介绍

fragment和activity一样,有四种状态,分别为活动状态(用户可见并且可以获取焦点)、暂停状态(部分可见,但不可获得焦点)、停止状态(完全不可见,无法获取焦点)、销毁状态(删除fragment或依附的activity被销毁)。
生命周期的过程为
添加新的fragment

onArrach()【将一个fragment关联到activity时调用】

onCreate()【初始化fragment时调用】

onActivity()【当activity完成自己的onOncreate()方法时调用】

onStart()【此时fragment在UI可见】

onResume()【fragment的UI和用户交互】

onPause()【当Activity转为onPause状态时调用】

onStop()【当有组件完全销毁或宿主Activity转为onStop时调用】

onDestroyView()【fragment清理View时调用,即移除fragment视图】

onDestroy()【fragment完成对View的清理的时候调用】

onDetach()【当fragment从activity删除的时候调用】
Android开发 Fragment的生命周期的介绍_第1张图片

2、Fragment生命周期的特点

①Activity直接影响fragment生命周期
②fragment相对于Activity多出的方法用于同Activity交互
③Activity进入运行状态,才允许添加或删除Fragment
④只有当Activity处于resumed状态时,Fragment生命周期才可以独立运转
⑤除此以外,其余阶段依赖于Activity的生命周期。

3、Fragment使用建立与使用方法

方法 功能
add(int view,Object fragment) 页面viewId对应的组件中增加对应的fragment
replace(int view,Object fragment) 页面viewId对应的组件中内容替换成fragment
hide(Object fragment) 隐藏对应的fragment
show(Object fragment) 展示对应的fragment
commit() 提交事务,使fragmentTransaction对象发生改变

xml页面代码

"1.0" encoding="utf-8"?>
android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    android:id="@+id/cs_fra"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>



cs_fragmentActivity 代码

public class cs_fragmentActivity extends AppCompatActivity {
    FragmentA fragmentA;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cs_fragment);
        //注意这里用的Fragment FragmentManager FragmentTransaction 都是android.app下的,这个不可以选错,否则会报错
        //获得fragment管理类
        FragmentManager fragmentManager=getFragmentManager();
        //建立fragment对象
        FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
        //动态添加页面
        fragmentTransaction.add(R.id.cs_fra,fragmentA);

    }
}

FragmentA代码

package com.example.fragmentapplication;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.Nullable;
//注意 继承的是android.app下的Fragment ,否则会报错
public class FragmentAextends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.find_layout,null);
        return view;
    }
}

运行结果
Android开发 Fragment的生命周期的介绍_第2张图片

你可能感兴趣的:(JAVA,Tips,移动开发)