2018-07-26 Fragment

fragment应用十分广泛,可以让我们的屏幕充分的得到利用,他相当于一个迷你的 activity,有着自己的生命周期。下面介绍 fragment 的添加方法。

1.首先在主布局添加两个fragment 如图 ,左右两个碎片。需要注意的是   其中属性要添加 name, id

然后为两个fragment 添加布局 之中的布局 .java文件 需要设置如下 然后fragment 通过name属性与改布局绑定 注意 要加上包名 这样两个就都绑定上去了  然后就可以运行了。

2. 然后介绍 动态 添加碎片  他的实现就是通过 在布局添加布局,然后把 fragment 放到布局里即可,这里我们用 framelayout 之所以选他 ,是因为它默认所有控件放在左上角,无需定位。然后如图添加 fragment到该布局就完成了   注意  要使用 V4 包 如下  并且要提交。

这样就完成了动态添加。

3.想一个问题,我们应该怎么样模拟返回栈来使用 fragment,就像activity一样。其实很简单,只需一句代码。不过这里介绍一种传参的方法,虽然会有些问题。

首先你可以直接新建一个fragment 系统还会帮你同时把布局文件弄好,并进行了绑定。然后新建一个activty 用来设置布局,如下  下面还是用 frameLayout(这里可能看不见)

定义一个 title 用于传参  然后改变 onCreatView 方法 把title设置到textView,需要注意的是 这样的传参有一点问题,需要设置注释 我也看不懂。

然后设置按钮,如下 最重要的就是  addToStack() 这样就添加到栈了,另一个也是如此做就不截图了。

4.一开始就说过,像上面这样传参会有问题,比如当你将屏幕旋转,这样参数就会消失。所以需要改动,这里介绍标准的方法。如图  使用自定义一个静态方法 然后如此做设置参数。

当然textView的参数设置也是需要改的,如下图 使用getArguments()方法。

当然传参数的地方也要改如下  不需要实例化了。

这样就完成了 标准的传参。

5.有时候,我们需要在fragment之间进行交互,那么这需要怎么做。先介绍一种我没试过的,就是我们可以通过 fragment 和 activity 之间进行交互方法是获取activity

MainActivity activity = (MainActivity) getActivity( );

也可以 activity和fragment之间交互  获取fragment

XFragment xf = (XFragment) getSupportFragmenter().findFragmentById(R.id. );

,那么就可以把activity当成中介,使得两边得以交互。


下面介绍另具体方法,大致想法和上面差不多,具体给出实现。

先在传值的地方定义接口

activity 实现接口并且对要设置值的 fragment进行实例化 然后设置方法。 在上面会调用该方法。

被设置值的fragment自己定义方法被activity调用。

注意:fragment 用 实现onClick()来定义点击事件。否则报错。

这样就设置完成了。

6.介绍PrefereneFragemnt , 具体作用如下图

先在res文件夹下新建一个xml文件,然后在xml文件下新建一个  .xml文件,具体参考API文档

然后在一个 Fragment文件中添加布局如下。

最后在activity中添加一个碎片 ,静态或动态添加碎片就行。

这样Fragment 的基本操作就完成拉。

你可能感兴趣的:(2018-07-26 Fragment)