Fragment的简单加载及更换
Fragment是什么?
Fragment:碎片,依附于activity。一个activity中可以有多个fragment
Fragment不需要在清单文件中注册。
fragment知识点
Fragment通过getActivity()可以获取所在的activity;
Activity通过fragmentManager的findfragmentbyid()或findfragmentbytag()获取fragment。
Fragment和activity是多对多的关系
Fragment的使用
一、创建一个新项目
二、创建一个类继承Fragment,并写出两个方法
onCreateView:通过该方法返回视图文件
onViewCreated:当view创建完成后可做的一些事情
![](https://img.haomeiwen.com/i24545964/20926409b97ac9bb.png)
三、创建一个fragment的xml文件
![](https://img.haomeiwen.com/i24545964/e5b30ca11ba0e3bb.png)
四、在fragment的java文件中:
在oncreateview方法中用inflater.inflate获取到xml资源文件,并return返回view。
在onviewcreated方法中可以用view来findviewbyid找到xml的控件
五、在activity中调用fragment文件。
(一)activity的xml文件中进行布局,来几个按钮和一个fragmentlayout
![](https://img.haomeiwen.com/i24545964/e0cf8893b8cf0d6f.png)
(二)在activity的java文件内:
Findviewbyid找到控件id
实例化我们的fragment文件
用getFragmentManager().beginTransaction().add(activity页面的fragment控件id,实例的fragment对象).commit;
提交可以用commitAllowingStateLoss();容错率更大。
![](https://img.haomeiwen.com/i24545964/a3e089a9e80e4f3b.png)
六、实现点击替换fragment:
替换可以用replace来进行,如下:
getFragmentManager().beginTransaction().replace(R.id.my_fragment,aFragment).commitAllowingStateLoss();
![](https://img.haomeiwen.com/i24545964/fa104dc365d921a8.png)
点击替换则在btn的点击事件中写就行。
网友评论