Android 片段不';t显示

Android 片段不';t显示,android,android-fragments,Android,Android Fragments,该项目是多片段项目。启动应用程序以启动BaseActivity,所有片段都附加到其中 问题: 碎片A是第一个碎片,发射得非常好。 碎片B是通过点击碎片A的按钮触发的,同样启动得很好。 在从B返回A的过程中,出现问题。没有要显示的内容,只有背景,BaseActivity 所有片段都使用api“replace”来显示,尽管此api可能会产生性能问题,请先忽略它 我试过很多方法,但都不管用 已启动的片段方法如下所示: public void navigateToFragment(Fragmen

该项目是多片段项目。启动应用程序以启动BaseActivity,所有片段都附加到其中

问题:

碎片A是第一个碎片,发射得非常好。 碎片B是通过点击碎片A的按钮触发的,同样启动得很好。 在从B返回A的过程中,出现问题。没有要显示的内容,只有背景,BaseActivity

所有片段都使用api“replace”来显示,尽管此api可能会产生性能问题,请先忽略它

我试过很多方法,但都不管用

已启动的片段方法如下所示:

    public void navigateToFragment(Fragment fragment, boolean isClear){
        if(isClear){     
            getSupportFragmentManager()
          .popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }

    getSupportFragmentManager().beginTransaction()
            .addToBackStack(null)
            .replace(R.id.container,fragment)
            .commit()
}

正如我所知,popBackStack和replace、commit可能会导致一个片段被启动两次,但为什么在replace之后不显示我替换它的内容呢?

尝试使用
添加
而不是
替换

getSupportFragmentManager().beginTransaction()
        .addToBackStack(null)
        .add(R.id.container,fragment)
        .commit()

欢迎来到SO。请看这里了解如何改进您的问题(格式化、校对、提供代码等):如果您想在后堆栈中添加片段,那么您必须使用add方法,而不是replace和popbackstack。但是,如果你不想在backstack中添加它,那么从back到Fragmnet b,你必须再次替换popback。实际上,我不认为这种方法更好。我不明白为什么第一个可以,第二个不可以,都使用
replace
整个项目使用
replace
,现在几乎是这个项目的结束。如果使用
add
代替
replace
,则很难在整个项目中修复。该项目使用了近30多个片段,它们都使用
replace
。我只是在这个项目中面对这个问题T。如果我使用
add
,我需要考虑
hide