Android 通过标记获取最后一个片段
我将片段添加到后堆栈中。例如:Android 通过标记获取最后一个片段,android,android-fragments,Android,Android Fragments,我将片段添加到后堆栈中。例如:A、B、C、A、D。然后从D我想更新第二个A 如果我使用supportFragmentManager.findFragmentByTag(“A”),我会引用位于后堆栈底部的第一个A 我试图搜索片段集合,但没有成功。对不起,我知道findFragmentByTag(tag)找到最后一个带有所需标记的片段。在我的例子中,在添加了许多片段之后,它有时发现的不是带有标记的最后一个片段,而是一个从上到下的片段(带有相同的标记)。也许我的代码中有个bug,我不知道,为什么会这样
A、B、C、A、D
。然后从D
我想更新第二个A
如果我使用supportFragmentManager.findFragmentByTag(“A”)
,我会引用位于后堆栈底部的第一个A
我试图搜索片段
集合,但没有成功。对不起,我知道findFragmentByTag(tag)
找到最后一个带有所需标记的片段。在我的例子中,在添加了许多片段之后,它有时发现的不是带有标记的最后一个片段,而是一个从上到下的片段(带有相同的标记)。也许我的代码中有个bug,我不知道,为什么会这样
首先我尝试使用回调,然后尝试使用parentFragment
和childFragmentManager
,请参阅。在片段D
中,我调用了parentFragment
并访问了A
的方法,可以更新最后一个A
片段。这个解决方案有两个问题
1) 子片段(D
)从父片段(a
)继承工具栏并添加自己的按钮。单击Back
按钮后,我们不会返回父级,甚至会退出父级(a
)
2) 如果我们不想更新前一个片段(因此A和D之间也有3个片段),这似乎是不可能的
因此,我取消了该解决方案并更改了应用程序的行为。在可能的情况下,我会清除一个后台。这样我们就不能有两个A
片段在backbackback中。我使用supportFragmentManager.popBackStack(null,FragmentManager.POP\u BACK\u STACK)
。是的,这是一个解决方法,但我不知道如何处理该错误。对不起,我了解findFragmentByTag(tag)
找到最后一个带有所需标记的片段。在我的例子中,在添加了许多片段之后,它有时发现的不是带有标记的最后一个片段,而是一个从上到下的片段(带有相同的标记)。也许我的代码中有个bug,我不知道,为什么会这样
首先我尝试使用回调,然后尝试使用parentFragment
和childFragmentManager
,请参阅。在片段D
中,我调用了parentFragment
并访问了A
的方法,可以更新最后一个A
片段。这个解决方案有两个问题
1) 子片段(D
)从父片段(a
)继承工具栏并添加自己的按钮。单击Back
按钮后,我们不会返回父级,甚至会退出父级(a
)
2) 如果我们不想更新前一个片段(因此A和D之间也有3个片段),这似乎是不可能的
因此,我取消了该解决方案并更改了应用程序的行为。在可能的情况下,我会清除一个后台。这样我们就不能有两个A
片段在backbackback中。我使用supportFragmentManager.popBackStack(null,FragmentManager.POP\u BACK\u STACK)
。是的,这是一个解决办法,但我不知道如何处理这个bug。目前我使用parentFragment
和childFragmentManager
访问以前的片段,请参见。对不起,findframentbytag(“a”)
经常引用最后一个“a”,但并不总是这样。如果我添加许多片段,它可以链接到最后一个“A”。这种行为很奇怪。目前我使用parentFragment
和childFragmentManager
访问上一个片段,请参见。对不起,findFragmentByTag(“A”)
经常引用最后一个“A”,但并不总是这样。如果我添加许多片段,它可以链接到最后一个“A”。这种行为很奇怪。