Я получаю странную проблему, используя Фрагменты и выскакивая их обратно.Фрагмент PopBackStack
У меня есть один фрагмент активность:
Step1: Я прилагаю один фрагмент в 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, он будет popbackstack и перенесет меня в предыдущий фрагмент. Но из Fragment_More, когда я снова нажимаю, он показывает мне чистый контент FRAGMENT. Он никогда не показывает первый фрагмент, который я добавил на шаге 1 в OnCreate Activity.
Прокомментируйте, пожалуйста. Что я делаю неправильно?
Благодаря
Можете ли вы предоставить нам классы фрагментов для фрагментов, которые вы используете? – 2014-09-22 13:56:29
На самом деле я не вижу ничего плохого, на самом деле я воспроизвел то, что вы описали (насколько это возможно), и он отлично работает. Я предполагаю, что что-то есть в коде, который вы не показываете. Я замечаю, что вы изменяете фрагмент в активности из другого фрагмента, что может привести к неприятностям (вы можете подумать об использовании слушателя из вашей деятельности). –
проверить это http://stackoverflow.com/questions/32132623/onback-pressed-data-not-showing-in-fragments –