- 方法:
- onCreateView()方法
-
- Fragment第一次绘制他的用户界面的时候,系统会调用这个方法,为了绘制Fragment的UI,此方法会返回一个View,如果不显示的话,就返回一个null;。
- Fragment的加载方式:
- 动态加载
-
- 撰写代码,将Fragment添加到一个Activity layout中 add():添加一个Fragment(指定添加的fragment和插入的View),于此类似的还有remove()、replace()
- 根据用户的交互情况,对Fragment进行添加,移除,替换,以及执行其他动作,提交给Activity的每一套变化,称作为一个事务
-
- FragmentManager fragmentManager=getFragmentManager();
- FragmentTransaction beginTransaction=fragmentManager.beginTransaction();
- 处理Fragment事务
-
- 每一个事务都是同时执行一套变化,可以在一个事务中设置你所有向执行的变化,包括add,remove,replace,然后提交给Activity,必须调用commit()方法
- 如果允许用户通过按下BACK案件返回之前一个Fragment状态,调用commit之前可以加入addToBackStack()方法
- 思路:
- 主函数,也就是我们的MainActivity函数内,主要就是加载显示的Activity的界面,以及跳转
- 我们通过,
MyFragment fragment=new MyFragment();
FragmentManager fragmentManager=getFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction().replace(R.id.frame_ll,fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit(); - 来实现Fragment的显示
- 需要注意的就是
- FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction().replace(R.id.frame_ll,fragment);
- R.id.frame_ll,就是你要把Fragment放到什么地方去的ID。
- 我们通过,
- MyFragment类:
- 首先要继承Fragment类,然后实现其中,onCreate,onCreateView,onPause,这三个方法先要实现。
- 然后在onCreateView中,添加
View view = inflater.inflate(R.layout.fragment, null); - 这句话,因为onCreateView返回值是View类型的,所以我们需要定义一个View类型的变量去接收值。
- R.layout.fragment 这是你写的一个,带有<fragment>标签的一个XML文件。
- 布局略(因人而异,开心就好)
- 主函数,也就是我们的MainActivity函数内,主要就是加载显示的Activity的界面,以及跳转
- Fragment的生命周期
- 当Activity进入Create,因为,Fragment是嵌入Activity中的,所有,要现有Activity再有Fragment,所以,程序,先执行Activity的创建,然后才是Fragment。同理可得,Started,resumed,Activity先执行,然后开始执行Fragment;
- 当程序进入Paused,Stopped,Destroyed,状态的时候呢,正是因为Fragment和Activity是嵌入关系,所以,就是Fragment先于Activity执行。与创建,相反。
- 在Fragment中,创建是,先创建Fragment,然后在创建View,销毁则是,先销毁View然后再销毁Fragment。
- 使用回退栈时候的生命周期
- 进入第一个Fragment时候
-
- onAttach
- onCreate
- onCreateView
- onActivityCreated
- onStart
- onResume
- 进入第二个Fragment时候,第一个的生命周期(第二个的生命周期和第一次进入第一次的生命周期类似)
-
- onPause
- onStop
- onDestroyView
- 回退上一个Fragment生命周期
-
- onCreateView
- onActivityCreated
- onStart
- onResume
- 因为,你进入第二个Fragment的时候是销毁的onDestroyView,所以,回退的时候,也应该是从onCreateView开始的。
Fragment的使用
最新推荐文章于 2023-09-17 00:27:08 发布