GiftParentPagerAdapter.java
2.96 KB
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;
}
}