Viewpager中动态更新View视图
来源:互联网 发布:pdr编辑软件android 编辑:程序博客网 时间:2024/05/19 02:28
<span style="color: rgb(50, 62, 50); font-family: Arial; font-size: 14px; line-height: 26px;">查了很多资料,发现要做到ViewPager刷新数据,动态更改adapter的数量那种效果只要实现这个方法就可以了:</span><span style="color: rgb(50, 62, 50); font-family: Arial; font-size: 14px; line-height: 26px;"></span><pre name="code" class="java">@Override public int getItemPosition(Object object) { // TODO Auto-generated method stub return PagerAdapter.POSITION_NONE; }
注意getItemPostion要返回POSTION_NONE时,viewpager会以为没有检测到item的存在从而刷新。但是这种方法不适合数据量比较大的。
我这里用的是Fragment装在到ViewPager中,即使我使用了这个方法,依然达不到效果。
但是每次
destroyItem掉view时,将view置空就可以了、
public class PageAdapter extends PagerAdapter { private Context mContext; private ArrayList<ImageView> mlist; private ArrayList<ImgListBean.ImgsBean> mImage; public PageAdapter(Context mContext, ArrayList<ImageView> mlist,ArrayList<ImgListBean.ImgsBean> mImage) { this.mContext = mContext; this.mlist = mlist; this.mImage = mImage; } @Override public int getCount() { return mlist.size(); } /** * 从指定的position创建page * * @param position The page position to be instantiated. * @return 返回指定position的page,这里不需要是一个view,也可以是其他的视图容器. */ @Override public Object instantiateItem(View collection, final int position) { ImageView child = mlist.get(position); child.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String fileType = mImage.get(position).getFileType(); if (TextUtils.equals("3",fileType)) { Intent intent = new Intent(mContext, VideoActivity.class); intent.putExtra("video", mImage.get(position).getFullPictureUrl()); mContext.startActivity(intent); } } }); ((ViewPager) collection).addView(child, 0); return child; }// @Override// public void destroyItem(View collection, int position, Object view) {// ((ViewPager) collection).removeView(mlist.get(position));// } @Override public void destroyItem(View collection, int position, Object o) {// 动态removeView很重要,是否能够删除数据就靠这句,否则会导致无法刷新视图 View view = (View)o; ((ViewPager) collection).removeView(view); view = null; } @Override public boolean isViewFromObject(View view, Object object) { return view==(object); } // 强制动态更新Item @Override public int getItemPosition(Object object) { // TODO Auto-generated method stub return PagerAdapter.POSITION_NONE; }}
0 0
- Viewpager中动态更新View视图
- 动态添加ViewPager的View
- 动态添加ViewPager的View
- 动态更新ViewPager中的Fragment
- Android中动态更新View组件的大小
- Android中动态更新View组件的大小
- ViewPager中手动删除视图
- ViewPager无法更新View的问题
- Viewpager 动态添加view以及滑动
- 在viewpager中动态添加view,并实现伪无限循环
- Android viewpager中更新数据
- Android中自定义视图View
- Android中自定义视图View
- angularjs ui-router 动态切换视图到指定的ui-view中
- Android中利用ViewPager实现视图切换
- Android中利用ViewPager实现视图切换
- ViewPager的Adapter中视图重用
- SQL Server中更新视图
- POJ 1459 Power Network (网络流)
- IDEA常用的14种插件
- Android配置环境变量
- 应用程序Activity管理类
- 抽象类与接口的关系
- Viewpager中动态更新View视图
- SQL中Group By的使用
- 正则表达式分组算法:IGA算法
- iOS10使用web方式没法跳到QQ聊天界面
- 前端学习必须掌握的知识点---Grunt
- Accp 7.0 第15章事咧6
- alibaba freeline 集成步骤
- 局部最小值位置练习题
- 关于程序出现cpu占用过高的问题排查、解决办法以及避免代码中出现cpu占用率过高