Blame view

app/src/main/java/com/chudiangameplay/android/adapter/GiftParentPagerAdapter.java 2.96 KB
sunhongmin committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
package com.chudiangameplay.android.adapter;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.ui.view.ChildViewPager;

import java.util.ArrayList;
import java.util.List;

/**
 * 礼物面板一级Pager,包含4个ViewPager
 * Created by 0 on 2019/8/16.
 */

public class GiftParentPagerAdapter extends PagerAdapter {

    List<List<GiftInfo>> data;
    List<GiftView_PagerAdapter_Room> adapters;
    List<ViewPager> viewPagers;
    Context mContext;
    CommCallBack callBack;

    public GiftParentPagerAdapter(Context mContext) {
        this.mContext = mContext;
    }

    public void setData(List<List<GiftInfo>> data, CommCallBack callBack) {
        this.data = data;
        this.callBack = callBack;
        adapters = new ArrayList<>();
        viewPagers = new ArrayList<>();
        notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return data == null ? 0 : data.size();
    }

    public int getDataSize(int position) {
        return data == null ? 0 : data.get(position).size();
    }

    public int getPagerPage(int position) {
        if (viewPagers != null && viewPagers.size() > position) {
            return viewPagers.get(position).getCurrentItem();
        }
        return 0;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        List<GiftInfo> list = data.get(position);
        ViewPager viewpager = (ViewPager) LayoutInflater.from(mContext).inflate(R.layout.view_pager, null);
        final GiftView_PagerAdapter_Room adapter = new GiftView_PagerAdapter_Room(mContext);
        viewpager.setAdapter(adapter);
        viewpager.setOffscreenPageLimit(list.size());
        viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                if (callBack != null) {
                    callBack.onResult(position);
                }
                adapter.changePage(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        adapter.setData(list);
        container.addView(viewpager);
        adapters.add(adapter);
        viewPagers.add(viewpager);
        return viewpager;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

}