在实际开发项目中,经常用到 Fragment,并且为了复用Fragment,所以基本上就是用show()和hide方法来复用Fragment。在Fragment从隐藏到显示,可能会做一些处理,例如数据重新请求加载等等,那么Fragment从隐藏到显示,会调用什么方法呢?下面先看看具体的代码实现:
- FragmentTransaction transaction = fragmentManager.beginTransaction();
- Fragment fragment;
-
- if (fragment!= null) {
- transaction.hide(fragment);
- }
-
- if (fragment == null) {
-
- fragment = new AllFragment();
- transaction.add(R.id.seckilling_fl, fragment);
- } else {
-
- transaction.show(fragment);
- }
当Fragment 从隐藏切换至显示的时候,不会调用onResume(),Fragment 的onResume()是Fragment 和它的宿主在切换时才会调用的,而Fragment 之前切换时,不会调用onResume()方法,仔细查看发现Fragment 之前切换,Fragment 从隐藏切换至显示,会调用onHiddenChanged(boolean hidden)方法
- public void onHiddenChanged(boolean hidden) {
-
- super.onHiddenChanged(hidden);
- if (hidden) {
-
- } else {
-
- }
- }