今天项目中涉及fragment中嵌套多个fragment,但是要根据tag去展示对应的fragment,而不是默认展示的第一个fragment,如果使用activity很容易想到onpause(),onResume()中进行处理,但是你会发现fragment的onpause和onresume只调用一次,因此,需要通过重写onHiddenChanged来进行处理,该方法当fragment隐藏时,该方法会调用传入参数为true表示该fragment被隐藏了,当fragment调用了show方法后,该方法传入的参数为false,表示该fragment正在显示!,因此可以使用该方法来实现类似activity中onresume() onPause()的操作
@Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); String tag = PreferenceUtils.getPrefString(context, Constant.TOCHOOSECARTAG, Constant.BRAND); if (tag.equals(Constant.BRAND)) { pager.setCurrentItem(0); }else { pager.setCurrentItem(1); } }
如上tag内容是前面设定加载不同页面的tag表示,每次进入这个父fragment页面,都会去判断这个内容,今儿加载不同的fragment。