package studio.uphie.one.ui.thing; import android.support.v4.app.Fragment; import com.umeng.analytics.MobclickAgent; import java.util.ArrayList; import java.util.List; import studio.uphie.one.R; import studio.uphie.one.abs.AbsModuleFragment; import studio.uphie.one.ui.FragmentAdapter; import studio.uphie.one.utils.TimeUtil; /** * Created by Uphie on 2015/9/6. * Email: uphie7@gmail.com */ public class ThingFragment extends AbsModuleFragment { private String firstHomeDate; @Override public int getLayoutId() { return R.layout.fragment_thing; } @Override public void init() { refresh(); firstHomeDate = TimeUtil.getDate(); } @Override public void onResume() { super.onResume(); MobclickAgent.onPageStart("ThingPage"); //如果首页的日期与当前不符,即数据过期,刷新数据。可能有bug if (firstHomeDate != null && !firstHomeDate.equals(TimeUtil.getDate())) { refresh(); } } @Override public void onPause() { super.onPause(); MobclickAgent.onPageEnd("ThingPage"); } @Override public void onPageSelected(int position) { //当当前页为viewpager的最后一页时,加载下一页 if (adapter.getCount() == position + 1) { adapter.add(ThingContentFragment.newInstance(position + 2)); } } @Override public void refresh() { List<Fragment> list = new ArrayList<>(); list.add(ThingContentFragment.newInstance(1)); list.add(ThingContentFragment.newInstance(2)); adapter = new FragmentAdapter(getChildFragmentManager(), list); pager.setAdapter(adapter); // 下面的代码无效,不明原因,换成了上面的两句代码。 // 先移除旧的Fragment后再实例化新的Fragment,adapter更新Fragment,新的Fragment不能实例化。明白的可以与我联系。 // adapter.replaceAll(list); } public Thing getCurThing() { return ((ThingContentFragment) adapter.getItem(pager.getCurrentItem())).getContentData(); } }