当前位置: 首页 > news >正文

孝感 网站建设/站长网站优化公司

孝感 网站建设,站长网站优化公司,做网站要学什么,深圳高端电商网站建设者最近一段时间忙于找工作,找到工作之后忙于项目上线,好久没有写过博客,现在感觉终于闲暇了,写一写这次项目中需要总结提炼的知识点,给自己留个印象吧,毕竟好记性不如烂笔头。 首先,写一写关于Fra…

最近一段时间忙于找工作,找到工作之后忙于项目上线,好久没有写过博客,现在感觉终于闲暇了,写一写这次项目中需要总结提炼的知识点,给自己留个印象吧,毕竟好记性不如烂笔头。

首先,写一写关于Fragment生命周期的相关。先放上一张老图!!

img_82d70ae3a7f9f8e839302e1d166d06a2.png
Fragment生命周期

Fragment 1 切换到 Fragment 2时生命周期变化

1、通过 add hide show 方式来切换 Fragment

  • Fragment1 的生命周期变化为:onCreate()、onCreateView、onStart()、onResume() 回调 onHiddenChanged() 方法

  • Fragment2 的生命周期变化为: onCreate()、onCreateView、onStart()、onResume()

  • Fragment 2 再次返回到 Fragment 1:不走任何生命周期方法但是回调 onHiddenChanged()方法

总结:当以这种方式进行 Fragment 1 与 Fragment 2 的切换时,Fragment 隐藏的时候并不走 onDestroyView,所有的显示也不会走 onCreateView 方法,所有的 view 都会保存在内存

2、使用 replace 的方法进行切换时

  • 载入Fragment 1时:

Fragment 1的生命周期:onCreate()、onCreateView()、onStart()、onResume()

  • 切换到Fragment2时:

Fragment 1的生命周期:onPause()、onStop()、onDestroyView()、onDestroy()

Fragment 2的生命周期:onCreate()、onCreateV()、onStart()、onResume()

  • Fragment 2切换回Fragment 1时:

Fragment2的生命周期:onPause()、onStop()、onDestroyView()、onDestroy()

Fragment 1的生命周期:onCreate()、onCreateV()、onStart()、onResume()

总结:通过 replace 方法进行替换的时,Fragment 都是进行了销毁,重建的过程,相当于走了一整套的生命周期

3、使用 ViewPager 进行切换时

当使用 ViewPager 与 Fragment 进行切换时,Fragment 会进行预加载操作

所有的 Fragment 都会提前初始--->预加载;

初始化时 Fragment 们的生命周期:

Fragment 1 的生命周期:onCreate()、onCreateView()
Fragment 2 的生命周期:onCreate()、 onCreateView()

Fragment 1 切换到 Fragment 2 的生命周期:

Fragment 1 :不走任何生命周期;
Fragment 2 :走 setUserVisVleHint()方法

切回去也是一样的

注意: setUserVisVleHint()方法在 Fragment 1 第一次加载的时候不走,只有在切换的时候 走该方法

/**
*第一个 Fragment 需要处理  setUserVisVleHint()方法,设置为 setUserVisibleHint(true);
*否则会产空指针异常,因为 setUserVisVleHint()方法的优先级高于 onCreate()方法。
*
* @param savedInstanceState
*/
@Override
public void onActivityCreated(Bundle savedInstanceState) {setUserVisibleHint(true);super.onActivityCreated(savedInstanceState);
}主动调用 setUserVisibleHint()方法来控制第一次不会调用setUserVisibleHint方法的问题。
setUserVisibleHint()方法优先onCreateView方法,当onCreateView方法调用后还会再次调用setUserVisibleHint方法。
此时要对是否调用了onCreateView()方法进行标记判断。

具体加载数据的代码


/*** 标志位,标志已经初始化完成*/
private boolean isPrepared;@Override
public void onActivityCreated(Bundle savedInstanceState) {// 配置setUserVisibleHint()方法setUserVisibleHint(true);super.onActivityCreated(savedInstanceState);
}@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_a, container, false);//已经初始化isPrepared = true;return view;
}@Override
public void setUserVisibleHint(boolean isVisibleToUser) {super.setUserVisibleHint(isVisibleToUser);//可见的并且是初始化之后才加载if (isPrepared && isVisibleToUser) {getList();}
}

Activity 切换到 Fragment 的生命周期变化

Fragment 的生命周期变化为:onStart()、onResume()

从 Fragment 1 进行锁屏操作

Fragment 的生命周期方法:onPause()、onSaveInstanceState()、onStop()。

从解锁 到 Fragment 1 的生命周期

onStart()、 onResume()

http://www.lbrq.cn/news/797275.html

相关文章:

  • 怎样申请一个网站/太原百度seo排名
  • 传播型网站建设优势有哪些/网络营销专业是干嘛的
  • 怎么做网站支付/无锡网站建设公司
  • 电影微网站开发/链接买卖价格
  • 合肥高端网站建设设计/app推广拉新工作可靠吗
  • 模板建站seo优化/沧州网站seo
  • 金溪那里可以做网站/青岛seo经理
  • 基于工作过程的商务网站建设 网页制作/济南百度竞价代运营
  • 好的做问卷调查的网站好/网站友情链接是什么
  • app软件开发培训班/微信seo是什么意思
  • 网站备案需要去哪办理/广告投放网
  • 没有公司可以做网站吗/如何做网络推广运营
  • 网站建设php/哪个平台可以接推广任务
  • 小型网站建设/seo优化关键词排名
  • 宿迁做网站 宿迁网站建设/seo是什么职业做什么的
  • 网站建设创作思路怎么写/360竞价推广登录入口
  • 电子商务网站建设书籍/域名
  • 酒店网站建设描述/chrome浏览器
  • 上海品牌型网站建设靠谱/汕头网站建设公司
  • 公司网站怎么做才能吸引人/免费行情软件网站下载大全
  • 山东省环保厅官方网站建设项目/百度前三推广
  • 时时彩 网站开发/郑州网站制作公司哪家好
  • 网站建设的设备/杭州企业seo
  • 万网主机网站建设数据库怎么弄/seo排名优化教程
  • 数据库做网站/广东短视频seo搜索哪家好
  • 局网站建设进入前十名/有免费推广平台
  • c 网站开发 调试/seo排名的影响因素有哪些
  • 电子商务他们的代表网站/济南网站建设方案
  • 域名访问网站应该怎么做/seo专业技术培训
  • 做拍卖的网站有哪些/品牌宣传方式
  • React中的Hooks
  • python学智能算法(三十一)|SVM-Slater条件理解
  • 技巧|SwanLab记录ROC曲线攻略
  • 【龙泽科技】汽车故障诊断仿真教学软件【风光580】
  • 深入 Go 底层原理(十一):Go 的反射(Reflection)机制
  • 德国威乐集团亚太中东非洲PMO负责人和继明受邀为PMO大会主持人