Android~Fragment~碎片化知识点
来源:互联网 发布:炫彩霓虹软件 编辑:程序博客网 时间:2024/05/18 06:41
一、为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。
可以说Fragment是一种轻量级的Activity,引入Fragment后,一个屏幕下布局更有了定制性和扩展性,降低了业务间的耦合性。
二、Activity中动态添加Fragment主要分为4步:
1.获取到FragmentManager,在Activity中可以直接通过getFragmentManager得到。
2.开启一个事务,通过调用beginTransaction方法开启。
3.向容器内加入Fragment,一般使用replace方法实现,需要传入容器的id和Fragment的实例。
4.提交事务,调用commit方法提交。
三,Fragment 的生命周期
先看看源码:
public class Fragment1 extends Fragment { public static final String TAG = "Fragment1"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.d(TAG, "onCreateView"); return inflater.inflate(R.layout.fragment1, container, false); } @Override public void onAttach(Activity activity) { super.onAttach(activity); Log.d(TAG, "onAttach"); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate"); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d(TAG, "onActivityCreated"); } @Override public void onStart() { super.onStart(); Log.d(TAG, "onStart"); } @Override public void onResume() { super.onResume(); Log.d(TAG, "onResume"); } @Override public void onPause() { super.onPause(); Log.d(TAG, "onPause"); } @Override public void onStop() { super.onStop(); Log.d(TAG, "onStop"); } @Override public void onDestroyView() { super.onDestroyView(); Log.d(TAG, "onDestroyView"); } @Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy"); } @Override public void onDetach() { super.onDetach(); Log.d(TAG, "onDetach"); }}
可以写个Demo,打印下Log,更深层次的理解一下Fragment的生命周期!
因为Fragment和Activity的生命周期太相似了。只是有几个Activity中没有的新方法,这里需要重点介绍一下:
onAttach方法:Fragment和Activity建立关联的时候调用。
onCreateView方法:为Fragment加载布局时调用。
onActivityCreated方法:当Activity中的onCreate方法执行完后调用。
onDestroyView方法:Fragment中的布局被移除时调用。
onDetach方法:Fragment和Activity解除关联的时候调用。
四、Fragment之间通信
一个Activty中有多个Fragment,那么它们之间的通信 就变得尤为重要,其实也很简单,主要都是通过getActivity这个方法实现的。getActivity方法可以让Fragment获取到关联的Activity,然后再调用Activity的findViewById方法,就可以获取到和这个Activity关联的其它Fragment的视图了。
小弟不才,欢迎大家指正,沟通交流~
- Android~Fragment~碎片化知识点
- Android碎片化 UI fragment
- Fragment android碎片化管理
- Android Fragment 碎片
- Android - Fragment(碎片) 详解
- android碎片Fragment简介
- Android 碎片Fragment讲解
- Android之Fragment(碎片)
- Android 碎片 Fragment
- android -fragment 碎片
- Android碎片 -- Fragment
- Android碎片 -- Fragment
- Android碎片Fragment详解
- Android碎片Fragment总结
- Android 碎片(Fragment)
- Android之Fragment 碎片
- Android-Fragment碎片-片段
- android碎片知识点
- ELK学习7_ELK文档资料:《ELK stack 权威指南/饶琛琳》勘误
- GitHub Desktop下载安装问题
- 编绎报错objc_msgSend too many arguments to function call,expected 0, have3 解决方法
- AsyncTask的使用方法和理解
- HihoCoder 1246:王胖浩与环
- Android~Fragment~碎片化知识点
- [新手记录]在ProgressDialog中执行子线程取消的问题
- [LeetCode]Search for a Range
- java web第一个servlet配置过程
- 小胖说事40-----造成滑动试图卡顿原因之一:圆角
- 详解Android中AsyncTask的使用
- Loadrunner使用键盘快捷键
- Android 源码解析:EventBus
- Apache ActiveMQ 启动失败解决方法