如何防止在android中的片段中按下后退按钮时调用onCreateView

Mih*_*hah 19 android back-button fragment

在我的应用程序中,我有tabbar功能.在一个选项卡中,我在lisview中显示服务器数据,点击该列表项的详细信息页面将以新的片段打开.

但是当我按下该详细页面上的按钮时,每次oncreateview都会调用上一页,因此每次创建listview时都会获取新的服务器数据.那么如何防止这种情况只是在后退按钮按下时显示以前的状态?

Inn*_*ler 39

我知道给出这个答案已经太久了,但我猜的是你正在用其他的替换你的片段.我的意思是说你正在使用

ft.replace(R.id.realTabContent, fragment);
Run Code Online (Sandbox Code Playgroud)

移动到你在onItemClick中使用的其他片段这么简单的解决方案就是使用

ft.add(R.id.realTabContent, fragment);
Run Code Online (Sandbox Code Playgroud)

而不是替换你的片段.

了解替换添加之间的区别.这将解决您的问题.

替换:它将替换原始片段并在您返回时重新创建视图
添加:它将只添加一个新片段到堆栈.

希望这能帮助那些面临同样问题的人......

  • 如果我们设置"添加",则新片段与旧片段重叠 (3认同)

use*_*394 5

我不认为防止调用onCreateView是一个好主意,除非函数没有被调用,否则会有异常,所以不,你不应该.我建议您将"listview created and new fetches new server data"移动到另一个可以明确调用的地方(当你想要的时候,你想要的onCreate()地方是一个好地方),不要把它放进去onCreateView().希望这可以帮助.