Fragment的基本用法介绍

来源:互联网 发布:淘宝店突然没生意了 编辑:程序博客网 时间:2024/06/05 04:39
1:管理Fragment回退栈
Fragment中FragmentManager主要是用来创建一个事物FragmentTransaction,
然后通过FragmentTransaction这个事物就行Fragment界面的管理。
其中主要有replace add remove hide show detach attach commit等方法
而且这些方法都是由FragmentTransaction来执行的,而FragmentTransaction则是由FragmentManager中的beginTransaction()来创建的出来的
例如:
Fragment fragment = new Fragment();
        FragmentManager fm = getFragmentManager();
        FragmentTransaction tx = fm.beginTransaction();
        tx.add(R.id.id_content, fragment "one");
//      tx.addToBackStack(null);
        tx.commit();
从上面例子可以看出有个函数没有讲过,就是tx.addToBackStack(null);
这个addToBackStack(null)看名字就能看出它的大概功能就是加入返回栈。
通俗的来说就是类似于activity中的返回每个activity的功能。
例如我们创建很多的Fragment,此时当我们点击返回按钮时就会用到addToBackStack(null);如果在哪个Fragment中有加入addToBackStack(null)返回队列中就会在点击返回时显示出来,如果没有就不会。

2:Fragment与Activity通信
a、如果你Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法
b、如果Activity中未保存任何Fragment的引用,那么没关系,每个Fragment都有一个唯一的TAG或者ID,可以通过getFragmentManager.findFragmentByTag()或者findFragmentById()获得任何Fragment实例,然后进行操作。
c、在Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作。
注:如果在Fragment中需要Context,可以通过调用getActivity(),如果该Context需要在Activity被销毁后还存在,则使用getActivity().getApplicationContext()。
e、Fragment与Activity通信的最佳实践

因为要考虑Fragment的重复使用,所以必须降低Fragment与Activity的耦合,而且Fragment更不应该直接操作别的Fragment,毕竟Fragment操作应该由它的管理者Activity来决定。所以可以通过接口来实现二者之间的调用。这样就不会有很强的耦合了。

这是本人这几天把看到的知识点稍微的总结一下,可能会有歧义。如果想了解更多请点击下面的连接。这位大神写的很完全,可以说是经典。



如果大家想看具体的解释可以去看一下大神的Fragment解释,讲的非常好。
这是链接地址:http://blog.csdn.net/lmj623565791/article/details/37970961
0 0