Viewpager + GridView 嵌套使用
来源:互联网 发布:迅捷贝软件 编辑:程序博客网 时间:2024/06/03 19:38
viewpager gridview 最主要是2个adapter的代码,其他的就不写了
首先是viewpage的adapter
public class BasePagerAdapter extends PagerAdapter {
protected static final String TAG = "BasePagerAdapter";
Context mContext;
List<App> app;
private int NUMCOLUMS = 6; //gridview 每一页显示几个
public MyGridView mGvYkj;
private View yunKongJianGridView;
public BasePagerAdapter(Context context, List<App> app) {
this.mContext = context;
this.app = app;
}
@Override
public int getCount() {
return getVpCount();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
yunKongJianGridView = View.inflate(mContext,
R.layout.yunkongjiangridview, null);
mGvYkj = (MyGridView) yunKongJianGridView.findViewById(R.id.gv_ykj);
mGvYkj.setAdapter(new GridViewAdapter(mContext, app, position));
initListener(position);
container.addView(yunKongJianGridView);
return yunKongJianGridView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
public int getVpCount() {
if (app.size() % NUMCOLUMS == 0) {
return app.size() / NUMCOLUMS;
} else {
return app.size() / NUMCOLUMS + 1;
}
}
DownLoadServiceOKHttp3 downLoadServiceOKHttp3;
public void initListener(final int vpPosition) {
mGvYkj.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
position = vpPosition * NUMCOLUMS + position;
}
});
}
gridview的adapter
public class GridViewAdapter extends BaseAdapter {
private static final String TAG = "GridViewAdapter";
Context mContext;
List<App> app;
int vpPosition;//viewpager当前是第几页
private int NUMCOLUMS = 6;gridview 每一页显示几个
public GridViewAdapter(Context context, List<App> app, int vpPosition
) {
this.mContext = context;
this.app = app;
this.vpPosition = vpPosition;
}
@Override
public int getCount() {
if (app.size() <= NUMCOLUMS) {
return app.size();
}
if (app.size() - vpPosition * NUMCOLUMS >= NUMCOLUMS) {
return NUMCOLUMS;
} else {
return app.size() % NUMCOLUMS;
}
}
@Override
public Object getItem(int position) {
return app.get(position + vpPosition * NUMCOLUMS);
}
@Override
public long getItemId(int position) {
return position + vpPosition * NUMCOLUMS;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
position = position + vpPosition * NUMCOLUMS;
ViewHodler viewHodler = null;
if (convertView == null) {
viewHodler = new ViewHodler();
convertView = View.inflate(mContext,
R.layout.yunkongjiangridchildview, null);
viewHodler.ivApp = (ImageView) convertView
.findViewById(R.id.iv_app);
viewHodler.pb = (RoundProgressBar) convertView
.findViewById(R.id.pb);
viewHodler.appName = (TextView) convertView
.findViewById(R.id.tv_appname);
convertView.setTag(viewHodler);
} else {
viewHodler = (ViewHodler) convertView.getTag();
}
//回显进度条,可忽略
String fileName = fileName(app.get(position).getDownUrl());
int downPosition = SPUtils.getInt(mContext, fileName(fileName), 0);
if (downPosition > 0 && downPosition < 100) {
viewHodler.pb.setVisibility(View.VISIBLE);
viewHodler.pb.setProgress(downPosition);
Log.d(TAG, position + "..");
} else {
viewHodler.pb.setVisibility(View.GONE);
viewHodler.pb.setProgress(0);
}
Glide.with(mContext)
.load(ApplicationConst.APP_DOWNLOAD_URL_PARENT_NEW
+ app.get(position).getIconUrl())
.into(viewHodler.ivApp);
viewHodler.appName.setText(app.get(position).getName());
return convertView;
}
class ViewHodler {
ImageView ivApp;
TextView appName;
RoundProgressBar pb;
}
public String fileName(String s) {
return s.substring(s.lastIndexOf("/"));
}
}
- Viewpager + GridView 嵌套使用
- 关于ViewPager嵌套Fragment,Fragment使用GridView导致的问题
- Viewpager嵌套GridView的实现
- ScorollView ViewPager gridView嵌套错误
- 关于ListView嵌套ViewPager,ViewPager嵌套GridView的一些问题。
- scrollview嵌套viewpager(包含gridview和listvie)
- 解决ScrollView嵌套ListView,GridView,ViewPager
- ViewPager嵌套GridView实现分页滚动
- ViewPager+RecyclerView嵌套gridView滑动问题
- ExpandableListView 嵌套gridView使用
- GridView嵌套在ViewPager中,ViewPager嵌套在ScrollView中,GridView显示不全问题
- Android ViewPager的嵌套使用
- Android-ViewPager嵌套使用探究
- ViewPager嵌套fragment简单使用
- Fragment和ViewPager嵌套使用
- ListView嵌套GridView使用详解
- ListView嵌套GridView使用详解
- 关于HorizontalScrollView嵌套gridview使用
- hadoop2.6完全分布式环境搭建(上)
- Ubuntu下jperf的安装
- Python datetime模块之time
- 【JAVA】7.数据类型转换
- Retrofit学习笔记
- Viewpager + GridView 嵌套使用
- (POJ 3254)Corn Fields <状态压缩DP 好题>
- 4744233.html
- 数字三角形
- spring 笔记2 PropertiesLoaderSupport
- 请求http出错问题修改plist
- 正则表达式
- 如何读懂一篇学术论文?
- 定时器quartz的配置与测试