android学习笔记——Fragment

将布局文件变为View对象


静态加载
1、创建一个activity2 在对应的xml中加入<fragment>,其中name属性绑定对应的fragment类。
2、创建fragment类以及对应的布局文件,在fragment类中将布局文件转换为View对象
   View view=inflater.inflate(R.layout.fragment, container, false);
3、在主activity中跳转到activity2,因为对应的xml中fragment标签绑定了fragment类,   于是会跳转到fragment对应的xml布局
注意通过静态加载时   <fragment需要一个唯一标识  id或者tag



动态加载

1、可以自定义一个类继承与Fragment,可以定义自己的布局。

2、在Activity中通过getSupportFragmentManager(注:最好都使用V4的包,主Activity也最好继承FragmentActivity)获得FragmentManager。

3、通过FragmentManager开启一个事务(beginTransaction())。

4、Transaction可以add、replace、remove。

       注意:1)add()有三个参数,第一个是指定Fragment插入Activity的一个container view的id(可以是FrameLayout),第二个是Fragment,第三个是一个tag,方便只有找到      

   2) When you remove or replace a fragment and add the transaction to the back stack, the fragment that is removed is stopped (not destroyed). If the user navigates back to restore the fragment, it restarts. If you do not add the transaction to the back stack, then the fragment is destroyed when removed or replaced(来自谷歌官方的介绍)

        addToBackStack会将事务中的一组命令添加到回退栈中        

5、提交(注意每次提交后,下一次要再次使用时,需要再次获取事务)


Fragment和Activity通信

注:多个Fragment之间不直接通信,都通过Activity来通信

1、Activity到Fragment。

     在Activity中 Fragment有个setArguments(args)方法。参数是一个Bundle。

     在Fragment中使用getActivity获得Activity的Context。再由此获得bundle。

2、Fragment到Activity

     现在Fragment中实现一个接口。然后实现Fragment的onAttch方法,将它的参数赋给接口的一个实例。再在Activity中实现此接口。在Fragment中需要的地方调用此接口中的方法即可。

     

你可能感兴趣的:(android)