主Activity
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=findViewById(R.id.viewpager);
tabLayout=findViewById(R.id.tab_parent);
viewPager.setAdapter(new Padapter(getSupportFragmentManager()));
tabLayout.setupWithViewPager(viewPager);
}
}
父Viewpager适配器
public class Padapter extends FragmentPagerAdapter {
private String[] p_menus=new String[]{"首页","发现","发布","消息","我的"};
public Padapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new OneFragment();
default:
return new TwoFragment();
}
}
@Override
public int getCount() {
return p_menus.length;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return p_menus[position];
}
}
子Viewpager适配器
public class Cadapter extends PagerAdapter{
private List<ContentBean.DataBean> mlist;
private Context context;
public Cadapter(Context context) {
this.context = context;
mlist=new ArrayList<>();
}
public void setMlist(List<ContentBean.DataBean> mlist) {
if(mlist!=null){
this.mlist = mlist;
}
notifyDataSetChanged();
}
public ContentBean.DataBean getItem(int position){
return mlist.get(position%mlist.size());
}
@Override
public int getCount() {
return mlist.size()>0?5000:0;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view==o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView=new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
container.addView(imageView);
ImageLoader.getInstance().displayImage(mlist.get(position%mlist.size()).getPic_url(),imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
OneFragment页面
public class OneFrag
ment extends Fragment {
private View view;
private ViewPager pager;
private Cadapter cadapter;
private LinearLayout linearLayout;
private TextView textView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.one,container,false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
pager=view.findViewById(R.id.cviewpager);
linearLayout=view.findViewById(R.id.linear);
textView=view.findViewById(R.id.title);
cadapter=new Cadapter(getContext());
pager.setAdapter(cadapter);
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
private int cacheIndex = -1;
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
textView.setText(cadapter.getItem(i).getNews_title());
linearLayout.getChildAt(i%linearLayout.getChildCount()).setSelected(true);
if(cacheIndex>=0){