片段的onResume()不叫从backstack弹出时 [英] Fragment's onResume() not called when popped from backstack
问题描述
您好我正在开发中,我使用我使用单个活动
和3个片段android应用。因此,考虑我有3个片段AB C.当我从一个切换到B,我加入片段
来backstack和呈三角为B至C。现在,当我点击回从C它让我B和相似B到A为好。
Hi I am developing android application in which I am using I am using single Activity
and 3 fragments. So consider I have 3 fragments A B C. When I switch from A to B, I am adding Fragment
to backstack and simillar for B to C. Now when I click back from C it shows me B and similar for B to A as well.
不过的是,当我从C到B或B到A,这不是叫 onResume()
或片段
。
But thing is that when I come from C to B or B to A, it's not calling onResume()
or any other life cycle methods of Fragment
.
我想这样做实际上是对每一个什么片段
我在动作条
不同的标题。所以,在我的code,当我移动从A到B或B到C,我改变活动标题片段里面。但是,当我点击回它不改变根据的。
What I want to do actually for every Fragment
I have different title in ActionBar
. So, in my code, when I move from A to B or B to c, I am changing activity title inside fragment. But when I click on back it not changing according to that.
什么是实际的问题?为什么从backstack它不是要求弹出后 onResume()
我的片段
?我该如何解决这个问题?需要帮忙。谢谢你。
What is the actual problem? Why after pop from backstack its not calling onResume()
for my Fragment
? How do I solve this problem? Need Help. Thank you.
推荐答案
onResume()
的片段
是叫活动
恢复时才能使用。因此,这不会帮助你。即使我面临着类似的问题现在。您可以实施 OnBackStackChangedListener
并获得在堆栈顶部的片段名称并设置基于该动作条
称号。
onResume()
of the Fragment
is called only when the Activity
is resumed. So this wont help you. Even I'm facing similar issue right now. You can implement OnBackStackChangedListener
and get the fragment name in the top of the stack and set the ActionBar
title based on that.
private FragmentManager.OnBackStackChangedListener getListener()
{
FragmentManager.OnBackStackChangedListener result = new FragmentManager.OnBackStackChangedListener()
{
public void onBackStackChanged()
{
FragmentManager manager = getFragmentManager();
if (manager != null)
{
if(manager.getBackStackEntryCount() >= 1){
String topOnStack = manager.getBackStackEntryAt(manager.getBackStackEntryCount()-1).getName();
Log.i("TOP ON BACK STACK",topOnStack);
}
}
}
};
return result;
}
这篇关于片段的onResume()不叫从backstack弹出时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!