1、自定义adapter
public class NoteStarAdapter extends FragmentPagerAdapter {
private Context context;
private List<Fragment> fragmentList;
private List<String> list_Title,id;
private Fragment[] f;
public NoteStarAdapter(FragmentManager fm, Context context, List<Fragment> fragmentList, List<String> list_Title,List<String> list_Title_id) {
super(fm);
this.context = context;
this.fragmentList = fragmentList;
this.list_Title = list_Title;
this.id =list_Title_id;
//notifyDataSetChanged();
}
@Override
public Fragment getItem(int position) {
return getfragment(position);
//fragmentList.get(position)
}
public void add(List<String> list_Title1,List<String> list_Title_id1){
list_Title.addAll(list_Title1);
id.addAll(list_Title_id1);
notifyDataSetChanged();
}
@Override
public int getCount() {
return list_Title.size();
}
/**
* //此方法用来显示tab上的名字
*
* @param position
* @return
*/
@Override
public CharSequence getPageTitle(int position) {
return list_Title.get(position);
}
//动态创建Fragment的方法
public Fragment getfragment(int position){
f = new Fragment[list_Title.size()];
Fragment fg = f[position];
if (fg == null) {
fg = FileGroundFragment.getiniturl(list_Title.get(position),id.get(position),position,list_Title.size());
f[position] = fg;
}
return fg;
}
}
2、在filegroundFragment中定义一个新函数
public static FileGroundFragment getiniturl(String tag,String id,int i,int total) {
FileGroundFragment fileGroundFragment = new FileGroundFragment();
Bundle bundle = new Bundle();
bundle.putInt("_position", i);
bundle.putInt("_total_position", total);
bundle.putString("_id", id);
fileGroundFragment.setArguments(bundle);
return fileGroundFragment;
}
3、在oncreate中使用
Bundle args = getArguments();
i = args.getInt("_position");//这个i不是现在的位置
total = args.getInt("_total_position");
if (i+1==total){
EventBus.getDefault().post(new MessageEvent("LoadMore"));
Log.e("sure","send");
}
4、在寄主Activity或Fragment中使用
public void initView(View view) {
viewPager = view.findViewById(R.id.viewpager);
mTabLayout = view.findViewById(R.id.tablayout);
fragmentList = new ArrayList<>();
list_Title = new ArrayList<>();
id = new ArrayList<>();
fragmentList.add(new FileGroundFragment());
list_Title.add("默认");
id.add("0");
toolbarTitle = getActivity().getResources().getString(R.string.tab_2);
Log.e("title",toolbarTitle);
toolbar = view.findViewById(R.id.toolbar);
if (toolbar != null) {
if (toolbarTitle != null) {
toolbar.setTitle(toolbarTitle);
}
}
setHasOptionsMenu(true);//加上这句话,menu才会显示出来
toolbar.inflateMenu(R.menu.filelist_fragment_menu);
}
//获得数据
private void getData() {
j = true;
BmobQuery<Tag> query = new BmobQuery<>();
// 按时间降序查询
query.order("troops");
//设置最多每次只查询10个
query.setLimit(10);
query.findObjects(new FindListener<Tag>() {
@Override
public void done(final List<Tag> list, BmobException e) {
if (e == null) {
if (list.size() > 0) {
//如果有数据,则加载数据
for (int i = 0; i<list.size(); i++){
list_Title.add(list.get(i).getTexttag());
id.add(list.get(i).getObjectId());
}
mTabLayout.setupWithViewPager(viewPager);
mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
noteStarAdapter = new NoteStarAdapter(getChildFragmentManager(),getActivity(),fragmentList,list_Title,id);
viewPager.setAdapter(noteStarAdapter);
viewPager.setOffscreenPageLimit(5);
}else{
ShowToast(getString(R.string.None_message));
}
}else{
ShowToast(getString(R.string.Check_net));
}
}});
}