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的视图了。

小弟不才,欢迎大家指正,沟通交流~

0 0