一:用户点击Back,实际是Fragment回退栈不断的弹栈。(FragmentTransaction.addToBackStack(String))
- 代码中的用法:
tx.replace(R.id.id_content, fTwo, "TWO");
tx.addToBackStack(null); 如果确实该句代码,并不会加入到栈中,点击返回按钮,不会再出现到该页面的
因为所有的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()。
3.个人感悟
getSupportFragmentManager()是 FragementActivity中的方法