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