[英]addToBackstack not working when replacing fragments in android
我阅读了有关此主题的主题,但直到无法使用为止。
这是我在onCreate方法中的代码。
if (savedInstanceState==null){
WeatherFragment weatherFragment = (WeatherFragment) Fragment.instantiate(this, WeatherFragment.class.getName());
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.container_small, weatherFragment);
fragmentTransaction.commit();
}
然后我替换片段。
FrameLayout fl;
if (findViewById(R.id.container2) != null)
fl = (FrameLayout) findViewById(R.id.container2);
else
fl = (FrameLayout) findViewById(R.id.container_small);
SettingsFragment settingsFragment = (SettingsFragment) Fragment.instantiate(this, SettingsFragment.class.getName());
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container_small, settingsFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
现在我按下后退按钮,该应用程序不会返回到第一个片段。
知道为什么吗?
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
if(getFragmentManager().getBackStackEntryCount()!=0)
getFragmentManager().popBackStack();
else
}
您需要重写onBackPressed()方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.