ViewPager数据加载错乱的问题
来源:互联网 发布:怎么购买备案域名 编辑:程序博客网 时间:2024/06/07 23:11
利用ViewPager作了一个滑动页面,发现里面的图片和对应的页数都是错乱的,后来发现是在调用方法的地方不对,因此记录下来,希望对大家有用
package me.quantumti.masktime.adapter; import java.util.List; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; public class MaskPlanViewPagerAdapter extends PagerAdapter { private List<View> mpViews; public MaskPlanViewPagerAdapter(List<View> mpViews) { this.mpViews = mpViews; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { View view = mpViews.get(arg1); if(null != view) { ((ViewPager)arg0).removeView(view); } } @Override public int getCount() { return mpViews.size(); } @Override public Object instantiateItem(View view, int position) { ((ViewPager)view).addView(mpViews.get(position)); return mpViews.get(position); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } }
数据的加载不能放在 instantiateItem() 方法中去处理,下面是调用方法的地方
@ViewById(R.id.vp_mask_plan) ViewPager vPager; vPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int currentPageIndex) { currentPage = currentPageIndex; tvPrg.setText((currentPageIndex + 1) + "/" + dataLen); loadDatas(currentPageIndex); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); private void loadDatas(int position) { final MyPlanDetail plan = mpDatas.get(position); View view = mpViews.get(position); ImageView ivPlanCover = (ImageView)view.findViewById(R.id.iv_plan_cover_full); TextView tvPlanName = (TextView)view.findViewById(R.id.tv_plan_title); TextView tvPlanSchedule = (TextView)view.findViewById(R.id.tv_plan_schedule); TextView tvPlanNextTime = (TextView)view.findViewById(R.id.tv_plan_next); LinearLayout llTitls = (LinearLayout)view.findViewById(R.id.ll_plan_title); llTitls.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { PlanDetailActivity_.intent(getActivity()).planId(plan.getPlanId()).start(); aUtils.leftInAnimation(getActivity()); } }); ivPlanCover.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { MyPlanDetailsActivity_.intent(getActivity()).planId(plan.getPlanId()).maskId(plan.getMaskdetail_id()).start(); aUtils.leftInAnimation(getActivity()); } }); Picasso.with(getActivity()).load(mUtils.formatImgUrl(plan.getIcon())).into(ivPlanCover); tvPlanName.setText(plan.getTitle()); tvPlanSchedule.setText(plan.getCurrentNum() + "/" + plan.getMaskNum()); int nextInterval = plan.getNextInterval(); tvPlanNextTime.setText(getActivity().getResources().getString(R.string.plan_fragment_plan_next_time_text) + mUtils.getNextTime(nextInterval)); }
阅读全文
0 0
- ViewPager数据加载错乱的问题
- ViewPager数据加载错乱的问题
- ViewPager 懒加载 导致的数据错乱问题
- Fragment的懒加载(解决ViewPager中Fragment生命周期错乱的问题)
- Tablayout+viewpager+Fragment的数据加载问题
- 如何解决ListView中EditText的数据加载错乱的问题?
- 关于 android listview 加载数据错位(错乱)问题
- gridview中使用CheckBox,解决CheckBox数据加载错乱问题
- listview复用后数据错乱问题的解决
- ListView 数据错乱问题的解决(CheckBox)
- viewpager嵌套fragment,数据预加载的问题
- 关于BaseAdapter,SimpleAdapter的数据显示错乱问题,选中状态错乱问题,Checkbox选中状态错乱问题总结
- ViewPager动态加载的问题
- 解决ListView加载错乱问题
- 问题记录:viewpager取消数据预加载
- JqueryEasyUI 解决IE下加载时页面错乱的问题
- ImageLoader加载本地和网络图片出现错乱的问题
- 安卓中常见ListView等加载Adapter后的错乱问题
- WPF 使用匿名类作为显示的Model
- 浙江中医药大学暑期训练测试赛八G
- uva10887 Concatenation of Languages
- [洛谷P1273]有线电视网
- C语言之二叉树(包括遍历的实现)
- ViewPager数据加载错乱的问题
- android自定义view的长按事件的执行时间
- Android AES加密工具类
- python爬虫
- 利用Dozer实现vo-Entiy-Model中属性的复用
- Oracle:查找表的主键,外键,唯一性约束,索引
- Unity--资源管理
- 2017 Multi-University Training Contest
- CSU