课堂笔记
- ViewPager 中的各个 HomePagerFragment 需要根据 id 加载显示相应内容,所以我们在新建 HomePagerFragment 时,需要把 Categories.DataBean 传入(title 数据也用的到)
public static HomePagerFragment newInstance(Categories.DataBean category) {
HomePagerFragment homePagerFragment = new HomePagerFragment();
Bundle bundle = new Bundle();
bundle.putString(Constant.KEY_HOME_PAGER_TITLE, category.getTitle());
bundle.putInt(Constant.KEY_HOME_PAGER_MATERIAL_ID, category.getId());
homePagerFragment.setArguments(bundle);
return homePagerFragment;
}
public static final String KEY_HOME_PAGER_TITLE = "key_home_pager_title";
public static final String KEY_HOME_PAGER_MATERIAL_ID = "KEY_HOME_PAGER_MATERIAL_ID";
- HomePagerAdapter 中就可以用 newInstance 方法新建 HomePagerFragment 了
@NonNull
@Override
public Fragment getItem(int position) {
Categories.DataBean dataBean = categoriesList.get(position);
return HomePagerFragment.newInstance(dataBean);
}
- HomePagerFragment 中重写 loadData() 方法,并取出 Arguments 中的值
@Override
protected void loadData() {
Bundle arguments = getArguments();
String title = arguments.getString(Constant.KEY_HOME_PAGER_TITLE);
int materialID = arguments.getInt(Constant.KEY_HOME_PAGER_MATERIAL_ID);
LogUtils.d(this, "title ---->" + title);
LogUtils.d(this, "materialID ---->" + materialID);
}