fragment应用十分广泛,可以让我们的屏幕充分的得到利用,他相当于一个迷你的 activity,有着自己的生命周期。下面介绍 fragment 的添加方法。
1.首先在主布局添加两个fragment 如图 ,左右两个碎片。需要注意的是 其中属性要添加 name, id
![](https://img.haomeiwen.com/i8103020/6b81e7b687fcb222.png)
然后为两个fragment 添加布局 之中的布局 .java文件 需要设置如下 然后fragment 通过name属性与改布局绑定 注意 要加上包名 这样两个就都绑定上去了 然后就可以运行了。
![](https://img.haomeiwen.com/i8103020/5f57ad4dd3b19d33.png)
2. 然后介绍 动态 添加碎片 他的实现就是通过 在布局添加布局,然后把 fragment 放到布局里即可,这里我们用 framelayout 之所以选他 ,是因为它默认所有控件放在左上角,无需定位。然后如图添加 fragment到该布局就完成了 注意 要使用 V4 包 如下 并且要提交。
![](https://img.haomeiwen.com/i8103020/6398b05381df0e93.png)
![](https://img.haomeiwen.com/i8103020/8296ccad1fc99f89.png)
这样就完成了动态添加。
3.想一个问题,我们应该怎么样模拟返回栈来使用 fragment,就像activity一样。其实很简单,只需一句代码。不过这里介绍一种传参的方法,虽然会有些问题。
首先你可以直接新建一个fragment 系统还会帮你同时把布局文件弄好,并进行了绑定。然后新建一个activty 用来设置布局,如下 下面还是用 frameLayout(这里可能看不见)
![](https://img.haomeiwen.com/i8103020/8b9e68665963824b.png)
定义一个 title 用于传参 然后改变 onCreatView 方法 把title设置到textView,需要注意的是 这样的传参有一点问题,需要设置注释 我也看不懂。
![](https://img.haomeiwen.com/i8103020/545d5c1432b4e1af.png)
然后设置按钮,如下 最重要的就是 addToStack() 这样就添加到栈了,另一个也是如此做就不截图了。
![](https://img.haomeiwen.com/i8103020/c65070f9ab2a5802.png)
4.一开始就说过,像上面这样传参会有问题,比如当你将屏幕旋转,这样参数就会消失。所以需要改动,这里介绍标准的方法。如图 使用自定义一个静态方法 然后如此做设置参数。
![](https://img.haomeiwen.com/i8103020/98bdf6adcfb3bcff.png)
当然textView的参数设置也是需要改的,如下图 使用getArguments()方法。
![](https://img.haomeiwen.com/i8103020/56b94ac5fcf25034.png)
当然传参数的地方也要改如下 不需要实例化了。
![](https://img.haomeiwen.com/i8103020/8377c7e5c1951244.png)
这样就完成了 标准的传参。
5.有时候,我们需要在fragment之间进行交互,那么这需要怎么做。先介绍一种我没试过的,就是我们可以通过 fragment 和 activity 之间进行交互方法是获取activity
MainActivity activity = (MainActivity) getActivity( );
也可以 activity和fragment之间交互 获取fragment
XFragment xf = (XFragment) getSupportFragmenter().findFragmentById(R.id. );
,那么就可以把activity当成中介,使得两边得以交互。
下面介绍另具体方法,大致想法和上面差不多,具体给出实现。
![](https://img.haomeiwen.com/i8103020/6cfd9a7d869b8d27.png)
先在传值的地方定义接口
![](https://img.haomeiwen.com/i8103020/dad1d60a0072726a.png)
activity 实现接口并且对要设置值的 fragment进行实例化 然后设置方法。 在上面会调用该方法。
![](https://img.haomeiwen.com/i8103020/e70ec2b8315f5d2d.png)
被设置值的fragment自己定义方法被activity调用。
![](https://img.haomeiwen.com/i8103020/d9d4f1da391090da.png)
注意:fragment 用 实现onClick()来定义点击事件。否则报错。
这样就设置完成了。
6.介绍PrefereneFragemnt , 具体作用如下图
![](https://img.haomeiwen.com/i8103020/b754bd986f4f429a.png)
先在res文件夹下新建一个xml文件,然后在xml文件下新建一个 .xml文件,具体参考API文档
![](https://img.haomeiwen.com/i8103020/7a5d926c8e38a471.png)
然后在一个 Fragment文件中添加布局如下。
![](https://img.haomeiwen.com/i8103020/31be4c0f351405b7.png)
最后在activity中添加一个碎片 ,静态或动态添加碎片就行。
这样Fragment 的基本操作就完成拉。
网友评论