viewpager +fragment+TabIndicator

2018-03-23  本文已影响22人  Mylovesunshine
  1. 基础
    planFragmentAdapter = new PlanFragmentAdapter(((FragmentActivity) context).getSupportFragmentManager(), titles, context);
    viewPager.setAdapter(planFragmentAdapter);
    viewPager.setCurrentItem(0);
    factory = new TabIndicatorView.ViewPagerIndicatorFactory(viewPager);
    tabIndicatorView.setTabIndicatorFactory(factory);

2.adapter:

 package com.zjugis.onemap.mobile.patrolplan;

  import android.content.Context;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
 import android.util.Log;

import com.zjugis.onemap.mobile.persistence.entity.Plan;
import com.zjugis.onemap.mobile.service.impl.PlanServiceImpl_;

import java.util.ArrayList;
import java.util.List;
public class PlanFragmentAdapter extends FragmentPagerAdapter {
private String[] titles;
private PlanListFragment planListFragment;
private ArrayList<Plan> results;
private Context context;

public PlanFragmentAdapter(FragmentManager fm) {
    super(fm);
}

public PlanFragmentAdapter(FragmentManager fm, String[] titles, Context context) {
    super(fm);
    this.titles = titles;
    this.context = context;
}

@Override
public Fragment getItem(int position) {
    //position =1->fragment2;position =2->fragment3;;position =3->fragment4;
    planListFragment = new PlanListFragment();
    Bundle bundle = new Bundle();
    if (position == 1 || position == 2 || position == 3) {
        bundle.putInt("flag", position);
    } else {
        bundle.putInt("flag", 4);
    }
    planListFragment.setArguments(bundle);
    return planListFragment;
}

@Override
public int getCount() {
    return titles.length;
}

@Override
public void notifyDataSetChanged() {
    super.notifyDataSetChanged();
}

@Override
public CharSequence getPageTitle(int position) {
    return titles[position] + "(" + PlanServiceImpl_.getInstance_(context).getplanCountByStatus(position, "1") + ")";
}

@Override
public int getItemPosition(Object object) {
    return POSITION_NONE;
}

}

  1.    /**
      * 刷新标题
      */
     if (factory != null) {
         factory.notifyDataSetChanged();
     }
     /**
      * 刷新内容
      */
     if (viewPager != null && viewPager.getAdapter() != null) {
         viewPager.getAdapter().notifyDataSetChanged();
     }
    
上一篇下一篇

猜你喜欢

热点阅读