zoukankan      html  css  js  c++  java
  • Android Fragment重要函数

    Fragment的常用函数:

    一、Fragment对象

    1.void setArguments(Bundle args); 这个函数为Fragment提供构造参数(也就是数据),参数以Bundle类型封装。因为官方不建议把数据的传递提供写在构造函数当中,因此提供了这个方法。

    2.Bundle getArguments(); 通过这个函数可以获取到传递给Fragment的参数。可以再Fragment当中直接调用,获取传递的数据。

    3.FragmentActivity  getActivity(); 返回和当前Fragment关联的FragmentAcitivty对象。

    4.FragmentManager  getChildFragmentManager(); 返回内嵌在当前Fragment当中的FragmentManager,用于管理内嵌在当前的Fragment的Fragments。

    5.FragmentManager  getFragmentManager(); 返回和当前Fragment平行的FragmentManager,用于管理和当前Fragment平行的Fragments。

    6.Fragment getParentFragment (); 返回包含当前Fragment的父Fragment。

    7.void  onActivityCreated(Bundle savedInstanceState); 当Fragment绑定的Activity创建的时候调用。

    8.void  onAttach(Activity activity); 当Fragment绑定到Activity的时候调用,这是Fragment生命周期第一次调用的函数。

    9.void  onDestroy(); 当Fragment不再使用的时候调用。

    10.void onDestroyView(); 当视图和Fragment分离的时候调用。

    11.void onInfate(Activity activity, AttributeSet attrs, Bundle savedInstanceState); 有同学可能注意到,为什么不会调用这个函数呢?这个函数只有当你的Fragment写在XML布局文件中显示的时候,该函数才会调用,并且这个函数调用在 onAttach之前。

    二、FragmentManager对象

    1.void  addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener); 为Fragment的后台堆栈添加一个监听器,用于监听堆栈的改变情况。

    2.FragmentTransaction  beginTransaction(); 开启一个事务,用于Fragment的一系列处理。

    3.Fragment  findFragmentById(int id); 通过Fragment的ID找到Fragment,这个ID可以是XML中的也可以是通过事务动态添加进去的。

    4.Fragment  findFragmentByTag(String tag); 通过Fragment的Tag找到Fragment,这个Tag可以是XML中的也可以是通过事务动态添加进去的。

    5.FragmentManager.BackStackEntry  getBackStackEntryAt(int index); 根据序号返回后台堆栈中的BackStackEntry对象,最底的序号为0。

    6.int  getBackStackEntryCount(); 返回堆栈的总数目。

    7.void  popBackStack(); 弹出堆栈中的一个并且显示,也就是代码模拟按下返回键的操作。

    8.void  popBackStack(String name, int flags); 针对第一个参数,如果name为null,那么只有顶部的状态被弹出;如果name不为null,并且找到了这个name所指向的Fragment对象; 根据flags的值,如果是flag=0,那么将会弹出该状态以上的所有状态;如果flag=POP_BACK_STACK_INCLUSIVE,那么将 会弹出该状态(包括该状态)以上的所有状态。

    9.void  popBackStack(int id, int flags); 针对第一个参数,如果该id找不到,那么什么都不做;否则根据flags的值,如果是flag=0,那么将会弹出该状态以上的所有状态;如果 flag=POP_BACK_STACK_INCLUSIVE,那么将会弹出该状态(包括该状态)以上的所有状态。

    10. boolean popBackStackImmediate (int id, int flags); 和popBackStack(int id, int flags)类似,不同的是这个事立马弹出,和executePendingTransactions()方法之后的效果一样。如果有东西弹出,返回为 true;否则就是false。

    11. boolean  popBackStackImmediate  (String name, int flags); 和popBackStack(String name, int flags)类似,不同的是这个事立马弹出,和executePendingTransactions()方法之后的效果一样。如果有东西弹出,返回为 true;否则就是false。

    12. boolean popBackStackImmediate(); 与popBackStack()方法类似,其他参考上面两个。

    13. void  removeOnBackStackChangedListener  (FragmentManager.OnBackStackChangedListener listener); 移除监听堆栈的监听器。

    以上就是我认为Fragment开发当中很重要的函数,如果还有不懂得可以参考官方API: http://www.android-doc.com/reference/android/support/v4/app/FragmentManager.html

    通常来说,创建Fragment通常需要实现三个方法:

    onCreate():系统创建Fragment对象后回调该方法,实现代码中只初始化想要在Fragment中保持的必要组件,当fragment被暂停或停止后可以恢复。

    onCreateView():当Fragment绘制界面组件时会回调该方法。该方法必须返回一个View,该View也就是该Fragment所显示的View。

    onPause():当用户离开该Fragment时将会回调该方法。

  • 相关阅读:
    ADO 缓存更新
    DBNavigator中把insert变为append
    JQuery 选择器
    VS2013默认打开HTML文件没有设计视图
    windows 关机 重启 命令
    java如何计算两个日期之间相差多少天?
    java的list集合操作List<T>转化List<Long>
    ExcelUtil工具类
    oracle的START WITH CONNECT BY PRIOR用法
    oracle的with as用法
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4200327.html
Copyright © 2011-2022 走看看