android - 在 android 中替换 fragment 时 addToBackstack 不起作用

标签 android android-fragments

我阅读了有关此主题的线程,但它直到不起作用。

这是我在 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();
    }

然后我替换该 fragment 。

        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();

现在我按下后退按钮,应用程序不会返回到第一个 fragment 。

知道为什么吗?

最佳答案

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub

    if(getFragmentManager().getBackStackEntryCount()!=0)
    getFragmentManager().popBackStack();
    else
}

您需要重写 onBackPressed() 方法

关于android - 在 android 中替换 fragment 时 addToBackstack 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29076128/

相关文章:

android - SQLite 数据库和游标

Android - 如何清除 textView?

android - 通过应用内计费解锁试用应用程序

android-fragments - Tablayout 更新自定义 View 选项卡的页面标题

android - Android- fragment 中的Firebase Analytics

android - 我的 android 应用在 android 市场中不可见

android - Android 上的 Flutter Lottie 动画闪屏

android - android中通过fragment访问Database类

android - 从 fragment 返回时,recyclerview 为空

android - 如何从 Fragment 到 ViewModel 进行通信?