我最近将 Fragments 添加到我的应用程序中。对于新的应用程序,我需要获得
显示我的片段后立即通知。所以我可以尽快做一些计算
片段再次显示。
我的 Fragment 与 TabIndicator 一起使用,并且仅使用一个 FragmentClass
几次。
这是正常的标准覆盖类:
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
}
我有同样的问题。
我使用了片段的标准指南实践工作(构建灵活的用户界面 http://developer.android.com/training/basics/fragments/fragment-ui.html)。
我有两个片段(ListItem Fragment 和 InfoItemFragment)。
当使用正常屏幕尺寸时,我将 ListItem Fragment 替换为 InfoItem Fragment 并
onHiddenChanged 方法不会自动调用。
FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem");
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
我认为我们必须在隐藏方法 FragmentTransaction 中调用。例如:
ListItemsFragment mListItemsFragment;
FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem");
if (mListItemsFragment != null) {
mFragmentTransaction.hide(mListItemsFragment);
}
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
现在 onHiddenChanged 方法工作正常。当用户单击后退按钮时,mListItemsFragment 再次显示并自动调用 onHiddenChanged 方法。
在文档中说:每当片段改变状态时都会调用它
我认为我们必须手动更改值然后调用方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)