Fragment的基本使用

本文介绍了Fragment的含义,它早期用于平板设计,可将页面分块展示内容。还阐述了实现Fragment的方法,包括创建和显示的静态、动态方式。此外,详细说明了Fragment的生命周期,以及add、remove、replace操作时的生命周期执行情况。

Fragment的含义

Fragment,英文碎片的意思,早期应用在平板设计中。把整个页面分成几小块,分别展示不同的内容,更新展示也更方便。

如何实现Fragment

创建Fragment

1、新建一个类,继承Fragment。
2、重写onCreateView()方法,添加自定义布局UI界面。

显示Fragment

静态:
1、在Activity对应的布局中,添加标签。
2、添加布局标签,必须有name来标识当前Fragment。

MyFragment.java:

public class MyFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Log.i("TAG2", "onCreateView: 创建Activity视图");
        return inflater.inflate(R.layout.layout_fragment,container,false);

    }

activity_main.xml:

<fragment
        android:id="@+id/fragment"
        android:name="com.example.day4.MyFragment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       /> 

动态:
1、在Activity对应的页面中,用布局填充器占位。
2、在主Activity中获得管理者对象、事务管理者。
3、用事务管理实现添加、移除、显示、隐藏、替换。

创建多个自定义Fragment

public class MyFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Log.i("TAG2", "onCreateView: 创建Activity视图");
        return inflater.inflate(R.layout.layout_fragment,container,false);

public class MyFragment2 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Log.i("TAG2", "onCreateView: 创建Activity视图");
        View view = getLayoutInflater().inflate(R.layout.layout_fragment2, null);
        return view;
    }

在Activity声明

	private MyFragment myFragment;
    private MyFragment2 myFragment2;
        //获得管理者
        FragmentManager manager; manager = getSupportFragmentManager();
        //获得事务管理者
        FragmentTransaction fragmentTransaction = manager.beginTransaction();
//        //添加|移除|显示|隐藏|替换
//
        fragmentTransaction.add(R.id.framelayout,myFragment);
        fragmentTransaction.add(R.id.framelayout2,myFragment2);
        fragmentTransaction.remove(myFragment);
        fragmentTransaction.show(myFragment);
        fragmentTransaction.hide(myFragment);
        //替换
        fragmentTransaction.replace(R.id.framelayout,myFragment2);
//        //提交事务
        fragmentTransaction.commit();

生命周期

1、onAttach() :Fragment与Activity有联系。
2、onCreate():创建Fragment。
3、onCreateView():创建Activity视图。
4、onActivityCreated():当Activity中的onCreate()执行完后调用。
5、onStart():启动。
6、onResume():可见。
7、onPause():不可见。
8、onStop():停止。
9、onDestroyView():销毁Fragment视图。
10、onDestroy():销毁fragment对象。
11、onDetach():解除关联。

add生命周期执行

onAttach()
onCreate()
onCreateView()
onActivityCreated()
onStart()
onResume()

remove时生命周期执行

onPause()
onStop()
onDestoryView()
onDestory()
onDetach()

replace时生命周期执行

新Fragment --> onAttach()
新Fragment --> onCreate()
旧Fragment --> onPause()
旧Fragment --> onStop()
旧Fragment --> onDestroyView()
旧Fragment --> onDesttoy()
旧Fragment --> onDetach()
新Fragment --> onCreateView()
新Fragment --> onActivityCreated()
新Fragment --> onStart()
新Fragment --> onStop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值