android - 构建版本 25.2.0 中的 fragment 返回堆栈问题

标签 android android-fragments build.gradle

我在我的项目中使用 fragment ,我在最近的 android 构建版本 25.2.0 中遇到一个问题,即清除 fragment 无法正常工作。

让我解释一下我的问题。

最初我添加了 DbFragmentView() fragment 类,但没有将其添加到 backStack。

  getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new DbFragmentView()).commit();

对于所有其他 fragment ,我将使用以下方法将其添加到后台堆栈

   @Override
    public void replaceFragment(Fragment fragment, String Title) {
        String backStateName = fragment.getClass().getName();
        FragmentManager manager = getSupportFragmentManager();
        boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);

        if (!fragmentPopped) { //fragment not in back stack, create it.
            FragmentTransaction ft = manager.beginTransaction();
            ft.replace(R.id.frame_container, fragment, fragment.toString());
            ft.addToBackStack(backStateName);
            ft.commit();
            getSupportActionBar().setDisplayShowTitleEnabled(true);
            getSupportActionBar().setTitle(Title);
        }
    }

在某些情况下,我需要清除我所有的 backstack fragment ,因为我使用下面的代码

if (getFragmentManager().getBackStackEntryCount() > 0) {
                    getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                }

在将构建版本更改为 25.2.0 之前一切正常。

但是在我将构建版本从 25.1.0 更改为 25.2.0 之后,上面的代码清除了我所有的 fragment ,然后又回到了我的第一个 DbFragmentView() fragment ,但 View 未出现。

onCreateView 方法已调用,但 View 看起来是透明的,因此我可以看到后台的其他应用。

然后我再次将构建版本更改为 25.1.0 然后它照常工作。

谁能告诉我解决这个问题的方法

注意:此问题仅在最新构建版本 25.2.0 中出现。

最佳答案

Android 最近更新了支持库版本,我已经在我的代码中更改了它。现在问题已解决。

compile 'com.android.support:appcompat-v7:25.3.0'

关于android - 构建版本 25.2.0 中的 fragment 返回堆栈问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42643952/

相关文章:

android - 使用 gradle 插件 3.0.0 的 androidTest 的 Multidex 问题

android - 哪个源文件包含?android :attr/spinnerItemStyle

android - 非法状态异常 : The specified child already has a parent

android - 工具栏菜单图标不显示

java - 如何在我的 list 中正确设置多个 applicationIds 或包名称

android - 花很多时间建立gradle

android - 尝试查看和锁定卫星时 GPS 客户端中的时间

android - mediaplayer seekTo() 以字节为单位的偏移量

android - 如何直接在 Android 手机上测试我的应用程序开发?

android - 使用 getChildFragmentManager().beginTransaction() 时的空对象引用