getFragmentManager().beginTransaction()
                .replace(R.id.graph_fragment_holder, new GraphFragment(), "GRAPH_FRAGMENT")
                .commit();

        getFragmentManager().beginTransaction()
                .replace(R.id.list_fragment_holder, new ListFragment(), "LIST_FRAGMENT")
                .commit();

        //getFragmentManager().executePendingTransactions();

        GraphFragment graphFragment = (GraphFragment) getFragmentManager().findFragmentByTag("GRAPH_FRAGMENT");
        graphFragment.setData(data);

        ListFragment listFragment = (ListFragment) getFragmentManager().findFragmentByTag("LIST_FRAGMENT");
        listFragment.setData(data);

我提供了一个标记,所以我不确定findFragmentByTag()为什么返回null

我通过阅读其他问题尝试了什么:

这两个this.setRetainInstance(true)oncreate中的
  • fragments
  • 这两个fragment构造函数都是空的public fragmentName(){}
  • 在添加executePendingTransactions之后尝试了fragments
  • 尝试使用add代替replace上的fragments(已编辑)
  • 最佳答案

    我遇到了findFragmentByTag()总是返回null的相同问题。

    最终我找到了它,我在Activity中覆盖了onSaveInstanceState(),但没有调用super。一旦我修复了findFragmentByTag(),便按预期返回了Fragment。

    关于android - GetFragmentManager.findFragmentByTag()返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23581894/

    10-09 01:42