我学过的android-1

我学过的android-1 fragment

好久没有更新了,最近在写android 额。。。。。接口和springmvc 重新写一个项目。 机械键盘打字真实爽!!!! ok 复习一下fragment 面试的时候总是看,看了N遍了也没有什么心得体会研究一下吧:


什么是fragment?

  • 这是我遇到的最愚蠢问题!!!什么就像什么事java,什么事c,什么事计算机语言一样。非要用中文告诉你什么事fragment 的话,那么我就告诉你,fragment的中文名称是碎片。一个允许将Activity拆分成多个完全独立封装的可重用的组件,每个组件都有它的生命周期和UI布局。反正这句话最后还是会忘记的。但是学会使用就好了。
  • 非要说fragment的特性,那么每个fragment都是独立的模块,并与它绑定的Activity有着密切的关系。多个Activtiy可公用一个Activity,可以在Activtiy里,随意的操作。
  • 一般使用常见的ViewPager + fragment,就可以在Activity里边进行滑动操作。

创建fragment

  • 多数形况下fragment需要分配一个UI布局文件。如果Fragment需要UI,可以重写onCreateView方法,来填充需要View层次。
 public class BlankFragment extends Fragment {
    public BlankFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        //填充布局
        return inflater.inflate(R.layout.fragment_blank, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

    }
}

fragment生命周期

public class BlankFragment extends Fragment {
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        //获取对父类Activity的引用
    }

    public BlankFragment() {
        // Required empty public constructor
        //一个空的构造
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化Fragment

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // 填充布局
        return inflater.inflate(R.layout.fragment_blank, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        //这里fragment的View被上边填充后,就可以控制里边的控件。
    }

    @Override
    public void onStart() {
        super.onStart();
        //应用所有需要UI变化,现在Fragment可见的。
    }
    //在活动的生命周期中被调用和Activty一样。
    @Override
    public void onResume() {
        super.onResume();
    //恢复所有暂停的Fragment。
    }
    //在活动生命周期结束的时候调用
    @Override
    public void onPause() {
        super.onPause();
        //当Activity不是活动的前台时候,需要暂停更新。
    }
    //在生命周期结束时候,嗲用该方法保存UI状态变化
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
    }
    //在可见生命周期结束时候调用
    @Override
    public void onStop() {
        super.onStop();
    }
    //当Fragment的View被分离时,调用该方法。
    @Override
    public void onDestroy() {
        super.onDestroy();
        //清除资源相关的View
    }


    //在整个生命周期结束时调用该方法
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        //清除所有资源,包括结束线程和关闭相关的数据库
    }
    //Fragment从他的父Activity上剥离时候,该方法
    @Override
    public void onDetach() {
        super.onDetach();
    }
}

Fragment特有的生命周期事件

  • 这 Fragment 完整的生命周期开始与绑定到它的父Activilty,结束于父Activity分离。
    onAttachonDetach onAttach 在Fragment的UI之前被创建前,以及Fragment自身或他们的父Activity完成他们的出事话之前会被触发。重唱OnAttach事件用来获取Fragment的父Activtiy的引用,用进一步出事化工作做准备。

创建和销毁Fragment

  • Fragment的UI是在一套处理程序中初始化和销毁:分别是onCreateView和onDestroyView,使用onCreateView方法来初始化Fragment:填充UI、获取它所包含的View的引用,然后创建所需的线程。

你可能感兴趣的:(android)