【问题标题】:fragmenttabhost re-createview when tag switch标签切换时fragmenttabhost重新创建视图
【发布时间】:2013-03-09 08:27:30
【问题描述】:

在我最近的项目中,我使用 FragmentTabHost 的 v4 支持库。

tab和fragment初始化时,绑定到标签的fragment被创建并渲染。它的生命周期是

onCreate ==> onCreateView ==> onActivityCreated

我重写了 onActivityCreated 方法,因为我需要从 api 获取一些数据。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Lg.i("on TagDiscoverListFragment activity created");

    new GetDiscoversTask().execute();

}

但是每次切换到这个选项卡,这个aysnTask都会再次执行,因为切换发生时,fragment会调用:

onCreateView ==> onActivityCreated

我不想再次刷新数据。

当然,我可以扩展 FragmentTabHost 并覆盖方法 doTabChange() 并将片段的附加/分离操作更改为隐藏/查看。

那么,还有其他解决方案吗?

【问题讨论】:

    标签: android android-tabhost fragment-tab-host


    【解决方案1】:

    您应该在片段中覆盖“onSaveInstanceState(Bundle outState)” 并将来自 api 的数据存储到“outState”中

    tab切换时会调用onCreateView,此时可以从“savedInstanceState”(第三个参数)获取api数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多