我遇到一个奇怪的问题,同时使用Fragments并弹出它们。Fragment PopBackStack
我有一个片段活动:
第一步:我在名为片段A的启动将一个片段,该活动的OnCreate为:
这是片段的的onCreate活动
@Override
protected void onCreate(Bundle savedBundleState) {
super.onCreate(savedBundleState);
setContentView(R.layout.activity_base_new);
Fragement_Home home = new Fragement_Home();
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().add(R.id.frameContent, home).addToBackStack("home").commit();
}
步骤:2之后我已添加替换片段用下面的代码:
Fragment_More moreFragment = new Fragment_More();
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().replace(R.id.frameContent, moreFragment).addToBackStack("more").commit();
第3步:在那之后,我再次以同样的方式增加了一个片段上Fragment_More:
Fragment_AboutRockstand termsConditions = new Fragment_AboutRockstand();
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.frameContent, termsConditions).addToBackStack("about_rockstand").commit();
,这里是我的碎片的活动onBackPressedButton Lisetener:
@Override
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
Fragment f = fm.findFragmentById(R.id.frameContent);
if(fm.getBackStackEntryCount() > 1){
fm.popBackStack();
} else{
finish();
}
}
这是问题所在我得到:
当我从步骤3回来,它给了我以前的片段成功,如上所述BackPressed,它会弹出窗口并将我带到以前的片段。但是从Fragment_More,当我再次按下时,它会显示空白的FRAGMENT内容。它从不显示我在活动的OnCreate的第1步添加的第一个片段。
请评论。我做错了什么?
感谢
您能否为我们提供您使用的片段的片段类? – 2014-09-22 13:56:29
我实际上看不到任何错误,实际上我已经复制了你描述的内容(尽可能多),它工作正常。我猜你的代码中有些东西没有显示出来..我注意到你正在改变另一个片段内的活动片段,这可能导致麻烦(你可能想要考虑从你的活动中使用一个监听器)。 – 2014-09-23 09:19:17
检查这个http://stackoverflow.com/questions/32132623/onback-pressed-data-not-showing-in-fragments – 2016-01-04 10:56:29