在Fragment Page Adapter中使用静态片段

时间:2015-01-08 00:12:13

标签: java android user-interface static fragment

我正在尝试开发基于标签的应用程序,我正在使用FragmentPageAdapter来做到这一点。我的扩展FragmentPageAdapter的类是根据Android文档的静态类。我的问题是在getItem()方法中我只能创建新的Fragment,这意味着旧的片段将被销毁。 我希望将我的片段保留在整个应用程序生命周期中,所以我决定声明本地静态成员,这些成员将始终关注我的片段。 这是代码:

static Fragment mapFragment = new MapFragment();
static Fragment listFragment = new VehiclesListFragment();
...
  @Override
        public Fragment getItem(int position) {
            if(position == 0 && listFragment != null) {
                return listFragment;
            } else if(position == 0) {
                listFragment = new VehiclesListFragment();
                return listFragment;
            } else if(position == 1 && mapFragment != null) {
                return mapFragment;
            } else if(position == 1) {
                mapFragment = new MapFragment();
                return mapFragment;
            }
            return null;
        }

我清除每个片段中的静态成员:

@Override
public void onDetach() {
    super.onDetach();
    MainActivity.mapFragment = null;
}

我的问题是:将Fragment声明为静态安全吗?是不是反对android desing哲学?每次用户切换选项卡时,是否有更好的解决方案可以将Fragment保留在内存中而无需创建新的?提前谢谢。

修改 我在这里找到了答案:http://alexfu.github.io/blog/2013/04/22/retaining-fragments-in-fragmentpageradapter/

0 个答案:

没有答案