片段 onHiddenChanged 未调用

2024-01-04

我最近将 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(使用前将#替换为@)

片段 onHiddenChanged 未调用 的相关文章