不知何故我的Fragment不会每次都被调用。

这是问题所在:
我有3个这样的标签。

-------------------------------------
|Fragment1   Fragment2   Fragment3  |
|                                   |
|                                   |
|                                   |
-------------------------------------


每当我点击Fragment1然后Fragment3时,都会调用Fragment3的onCreateView。但是,当我点击Fragment2然后Fragment3时,它没有。

我正在使用扩展TabsPagerAdapter的自定义FragmentPagerAdapter

以下是所需的代码段。 (请让我知道是否需要查看更多代码)。
TabsPagerAdapter

    public class TabsPagerAdapter extends FragmentPagerAdapter {
    private String[] tabs = { "Fragment1", "Fragment2", "Fragment3" };
    List<Fragment> fragments;



    public TabsPagerAdapter(FragmentManager fm, List<TabsPagerAdapter> fragments) {
        super(fm);
        this.fragments = fragments;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabs[position];
    }

    @Override
    public Fragment getItem(int index) {
        return fragments.get(index);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Fragment createdFragment = (Fragment) super.instantiateItem(container, position);
            String tag = createdFragment.getTag();
        return createdFragment;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return fragments.size();
    }

}


片段3:

public class Fragment3 extends Fragment {
 @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        this.context = context;
    }
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        context=activity;
    }

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
          ......
         Log.i("Blocked List","onCreateView called"); //This doesn't print
                                                      //sometimes
          getList();//It holds the list for ListView

  }


Fragment1几乎与Fragment2Fragment3相似。

帮帮我!

最佳答案

我的解决方案使用仅在ViewPager中可见片段时才触发的Fragments Override方法

 @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser);
            if(isVisibleToUser) {
                //fragment visible code
            }
            else{
            //fragment invisible code
              }
        }

09-12 18:11