分享

Fragment的使用和介绍

 Dragon_chen 2016-10-21
  Fragment的优点就是当Activity较为复杂时,将Activity的界面分为几个模块,每个模块就是一个Fragment。这样避免Activity的臃肿,也有助于减小耦合,提高内聚。使用一个新包存放Fragment。每个activity用1到3个fragment为宜。太多Fragment会充斥着Fragment事务处理,这个时候用定制视图继承View。

  但是我们尽量使用Fragment,到后期添加会有很多麻烦处理。

  当要使用Fragment时,一般使用Fragment填充FrameLayout。每个Fragment都有其布局容器。

  Fragment多的时候,可以抽取一个公有的抽象BaseFragment类。抽象方法由不同的Fragment自己实现。这样提高代码复用率,也更加灵活。

  常见的用法是Fragment里面保存一个Activity变量。

  public abstract class BaseFragment extends Fragment {

  protected Activity mActivity;

  //在onAttach之后调用的方法。是第二个被调用的方法。

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  mActivity = getActivity();

  }

  //第三个被调用的方法,用来初始化Fragment布局

  @Nullable

  @Override

  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

  return initView();

  }

  // 第四个被调用的方法,在Activity的onCreate方法调用后调用,用来初始化数据。

  @Override

  public void onActivityCreated(Bundle savedInstanceState) {

  super.onActivityCreated(savedInstanceState);

  initData();

  }

  //初始化布局函数由子类实现,且不由外界调用。

  protected abstract View initView();

  initView函数是创建具体的Fragment。

  //初始化数据函数由子类实现

  protected abstract void initData();

  利用FragmentManager动态添加Fragment

  Fragment事务处理Fragment添加删除替换

  FragmentManager.BeginTransaction.add.comit
当需要给Fragmentc信息可以设置argument给一个Bundle给Fragment。
  Fragment使用原则

  Fragment保持独立性。他不需要知道托管的activity的方法。不调用activity的方法。反之activity知道Fragment的方法。

  这说明一个模块知道他内部模块的信息不知道他所属模块的信息。其次内部模块应该提供修改自己信息的函数而不是直接由模块修改。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多