我使用ViewPager
完全显示图像(在滑动模式下)1-5张图像。
我的页面适配器
public class SimplePagerAdapter extends FragmentPagerAdapter {
public SimplePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Logger.e("POSITION = "+position);
currentBitmap = MediaHelper.bitmaps.get(position);
return fragments.get(position);
}
@Override
public int getCount() {
return IMAGE_COUNT;
}
}
示例i有3张图片。 当我从开始(从左到右)滑动时,我的Logger显示位置0,1,2。当我向后滑动(从右到左)记录器不工作并且“图像没有更新到previsius,它保留我的最后一个图像(就像位置2上的图像将在所有位置(0,1))。 可以帮助我,如何解决?
fragments its ArrayList<Fragments>
它的工作原理:img1 = a,img2 = b,img3 = c; 从a到b移动到c 当从c回到b - b有img3时,从b移到a,a有img3。
[溶液] 将fragmentAdapter更改为PagerAdapter
class CustomPagerAdapter extends PagerAdapter {
Context mContext;
LayoutInflater mLayoutInflater;
public CustomPagerAdapter(Context context) {
mContext = context;
mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return MAX_PAGES;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((LinearLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View itemView = mLayoutInflater.inflate(R.layout.image_fragment_one, container, false);
ImageView imageView = (ImageView) itemView.findViewById(R.id.imageViewFragment);
imageView.setImageBitmap(MediaHelper.bitmaps.get(position));
container.addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout) object);
}
}