TextVersion_07_Fragment相关细节
来源:互联网 发布:上饶网络教育报名时间 编辑:程序博客网 时间:2024/04/30 06:27
Fragment相关细节
Fragment和Activity怎么传值
当 Fragment 跟Activity绑定之后,
在 Fragment 中可以直接通过getActivity() 方法获取到其绑定的Activity对象,
这样就可以调用 Activity 的方法
在Activity中可以获取Fragment实例
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
Fragment fragment = fragmentManager.findFragmentById(id);
获取到Fragment之后可以调用Fragment的方法
还可以用setArguments方法
fragment.setArguments(Bundle),将数据绑定到Fragment中
Fragment的生命周期
Fragment的replace和add方法的区别
Fragment本身是没有replace和add方法的
这里说的其实是FragmentManager的replace和add方法
我们经常使用的一个架构就是
通过RadioGroup切换Fragment
每一个Fragment就是一个功能模块
通过两种方法切换的小例子:
case R.id.rb_1:
rb_1.setBackgroundColor(Color.RED);
transaction.show(fragment1);
// transaction.replace(R.id.fl, fragment1, "Fragment1");
break;
case R.id.rb_2:
rb_2.setBackgroundColor(Color.YELLOW);
// transaction.replace(R.id.fl, fragment2, "Fragment2");
transaction.show(fragment2);
break;
case R.id.rb_3:
rb_3.setBackgroundColor(Color.BLUE);
// transaction.replace(R.id.fl, fragment3, "Fragment3");
transaction.show(fragment3);
break;
解析Fragment切换
Fragment的容器是一个FrameLayout,
add的时候是把所有的Fragment一层一层叠加到了FrameLayout上
而replace的话就是把其他的Fragment都去除掉,
然后把当前的Fragment添加到容器中
一个Fragment容器只能添加一个Fragment种类
如果多次添加会报异常
replace的话就无所谓,随便切换
因为通过add的方法添加的Fragment,每个Fragment只能添加一次
所以要hide和show两个方法结合使用
这个过程中Fragment的生命周期没有变化
通过replace切换,每次都会执行上一个Fragment的onDestroyView
新的Fragment会执行onCreateView,onStart,onResume
- TextVersion_07_Fragment相关细节
- kindle 电纸书相关细节
- fork/printf相关细节
- TableView相关小细节
- oracle相关细节功能
- 59_Service相关细节
- 67_BroadcastReceiver相关细节
- 70_ContentProvider相关细节
- 82_Fragment相关细节
- python 细节 -- init相关
- fragment相关细节
- python 相关细节知识
- ArrayList相关细节
- LinkedList相关细节
- HashMap相关细节
- 嵌入式编程 相关 细节 收集
- 线程池使用,相关细节
- hibernate相关的细节整理
- Leetcode Everyday: 243. Shortest Word Distance
- 个人开公司的流程及费用
- shared_ptr的线程安全性
- 实验报告-5
- 有关Lattice Diamond的若干bug
- TextVersion_07_Fragment相关细节
- Java中的WeakHashMap实现分析
- ExpandListView 的一种巧妙写法
- 控件左右晃动的动画效果
- HUSTOJ 1033: 质因子分解
- android:scaleType属性
- HDU 2019
- C++ 将类的声明和定义部分保存在头文件中
- POJ 1811 Prime Test (Miller-Robin+Pollard_rho)