Fragment hide,show方法后,会调用什么方法

来源:互联网 发布:学而思当美工工资高吗 编辑:程序博客网 时间:2024/05/21 12:42

在实际开发项目中,经常用到 Fragment,并且为了复用Fragment,所以基本上就是用show()和hide方法来复用Fragment。在Fragment从隐藏到显示,可能会做一些处理,例如数据重新请求加载等等,那么Fragment从隐藏到显示,会调用什么方法呢?下面先看看具体的代码实现:

[java] view plain copy
  1. FragmentTransaction transaction = fragmentManager.beginTransaction();  
  2.      Fragment fragment;//  
  3.      //隐藏 Fragment   
  4.      if (fragment!= null) {  
  5. transaction.hide(fragment);  
  6. }  
  7.       //显示、加载Fragment   
  8.        if (fragment == null) {  
  9. // 如果fragment为空,则创建一个并添加到界面上  
  10. fragment = new AllFragment();  
  11. transaction.add(R.id.seckilling_fl, fragment);  
  12. else {  
  13. // 如果Fragment不为空,则直接将它显示出来  
  14. transaction.show(fragment);  
  15. }  
     当Fragment 从隐藏切换至显示的时候,不会调用onResume(),Fragment 的onResume()是Fragment 和它的宿主在切换时才会调用的,而Fragment 之前切换时,不会调用onResume()方法,仔细查看发现Fragment 之前切换,Fragment 从隐藏切换至显示,会调用onHiddenChanged(boolean hidden)方法
[java] view plain copy
  1. public void onHiddenChanged(boolean hidden) {  
  2. // TODO Auto-generated method stub  
  3. super.onHiddenChanged(hidden);  
  4. if (hidden) {// 不在最前端界面显示  
  5.   
  6. else {// 重新显示到最前端中  
  7.   
  8. }  
  9. }