>我有这个方法来添加一个片段:
public void addFragmentOnTop(Fragment fragment) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content, fragment)
.addToBackStack(null)
.commit();
}
假设我将在"主页"中使用键"耳机"搜索项目。然后R.id.content
将替换为 SearchFragment。当我再次使用"耳机"键搜索(不点击后退按钮返回主页,因为 SearchView 在工具栏中(时,R.id.content
将再次替换。问题是,为什么这会生成历史片段?当我点击返回按钮时,R.id.content
将显示带有"耳机"键的搜索结果。我已经尝试过getSupportFragmentManager().remove(SearchFragment.TAG);
但不影响我的应用程序。有人可以帮助我吗?:(
删除.addToBackStack(null);
。它会将您的Fragment
添加到后退堆栈上(创建您正在谈论的片段历史记录(,只要您按下后退按钮,您的Activity
就会弹出该历史记录。
希望这有帮助。祝你好运:)