我的Activity
ImagePagerAdapter
(FragmentStatePagerAdapter
的扩展名)有getItem
方法:
@Override
public Fragment getItem(int position) {
Log.d(LOGTAG, "------------>mUserPicturesList.get("+position+").getFilename(): " + mUserPicturesList.get(position).getFilename());
return UserDetailFragment.newInstance(mUserPicturesList.get(position).getFilename());
}
实例化的片段具有onCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate and locate the main ImageView
final View v = inflater.inflate(R.layout.image_detail_fragment, container, false);
mImageView = (ImageView) v.findViewById(R.id.imageView);
mProgressPicturePager = (ProgressBar) v.findViewById(R.id.progress_picture_pager);
String imageUrl = WApp.PHOTO_URL + mImageUrl + "?type=user_gallery_big_img";
Picasso picasso = Picasso.with(getActivity());
picasso.setDebugging(true);
picasso.load(imageUrl)
.placeholder(R.drawable.no_picture_man_big)
.error(android.R.drawable.stat_notify_error)
.into(mImageView, new Callback() {
@Override
public void onSuccess() {
mProgressPicturePager.setVisibility(View.GONE);
}
@Override
public void onError() {
Log.d(LOGTAG, "picasso load error");
mProgressPicturePager.setVisibility(View.GONE);
}
});
return v;
}
问题:
第一次ImagePager
加载时,毕加索会调用onError
,显示.error
可绘制。
如果我按下后退按钮并返回到Activity
的{{1}},Picasso会正确加载图片。
如果ImagePager
有两张或更多图片,并且我在图片之间滑动,那么这些图片会在没有退出的情况下正确加载一些,然后重新进入ImagePager
。
理论:
我认为这可能是缓存问题,但经过多次搜索后,我敢打赌问题出现在毕加索的弱引用中。 请记住,问题只出现在第一次加载具有ImagePager的活动时。
在另一个地方,目前ImagePager
在Picasso
中使用适配器首次加载图片时工作正常。在listView
类的Picasso
方法中调用getView
。
访问过的链接
提前致谢。
答案 0 :(得分:1)