Andriod Fragment---给Activity添加一个Fragment

通常,Fragment作为Activity整体视图层次树的一部分,被嵌入到宿主Activity的界面的一部分。有两种方法能够把Fragment添加到Activity布局中:

1.在Activity布局文件的内部声明Fragment。

你能够像一个视图那样给Fragment指定布局属性。下例说明了给Activity指定两个Fragment的布局文件。



    
    

元素中的android:name属性指定了在布局中要实例化的Fragment。

当系统创建这个Activity布局时,它实例化在布局中指定的每一个Fragment,并且分别调用onCreateView(),来获取每个Fragment的布局。然后系统会在Activity布局中插入通过元素中声明直接返回的视图。

注:每个Fragment需要一个唯一的标识,这样能够在Activity被重启时系统使用这个ID来恢复Fragment(并且你能够使用这个ID获取执行事务的Fragment,如删除)。有三种给Fragment提供ID的方法:

A.使用android:id属性来设置唯一ID;

B.使用android:tag属性来设置唯一的字符串;

C.如果没有设置前面两个属性,系统会使用容器视图的ID。

2.编程给一个既存的ViewGroup添加Fragment。

在Activity运行的任何时候,都可以把Fragment添加到Activity布局中。你只需要指定一个放置Fragment的ViewGroup。要在Activity中使用Fragment事务(如添加、删除、或替换Fragment),必须使用来自FragmentTransaction的APIs。你能够向下面例子那样从Activity中获取一个FragmentTransaction实例:

FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

然后,你能够使用add()方法把Fragment添加到指定的视图中,如:

ExampleFragment fragment = new ExampleFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();

传递给add()方法的第一个参数是Fragment应该被放入的ViewGroup,通过资源ID来指定这个ViewGroup,第二个参数是要添加的Fragment。

一旦FragmentTransaction对象发生了改变,就必须调用commit方法来提交改变的影响。

注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar

你可能感兴趣的:(Andriod Fragment---给Activity添加一个Fragment)