【发布时间】:2016-01-15 02:41:25
【问题描述】:
我有一个包含许多片段和“主页”片段的主要活动。每次我想添加一个片段时,我都会在主Activity内部调用这个方法。
public void addFragment(Fragment fragment) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(R.id.fragmentContainer, fragment, "new_fragment");
ft.addToBackStack("new_fragment").commit();
}
每当用户按下手机的后退按钮时,我希望“主页”片段成为用户在退出应用程序之前看到的最后一页。我怎样才能做到这一点?我已经在 MainActivity 的 onBackPressed() 中尝试过了,但它不起作用(后退按钮不起作用)。
@Override
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag("new_fragment");
//if fragment is home page fragment, exit application
//else pop the newest fragment or go to home page fragment
if (fragment == fragDefault) {
finish();
} else {
if(fm.getBackStackEntryCount() == 0){
//display home page fragment here
}
}
}
【问题讨论】: