У меня есть 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
, у которого есть , Picasso загрузит изображение правильно. Если у есть две или более картинки, и я прокручиваю между изображениями, они загружаются правильно несколько раз без выхода и повторно входят в .
Теория:
Я думаю, что это может быть проблемой кэша, но после многих поисков, я уверен, что проблема заключается в слабой компетенции Пикассо. Имейте в виду, что проблема появляется только в ПЕРВОЕ ВРЕМЯ Я загружаю действие, которое имеет ImagePager.
В другом месте, в настоящее время Picasso
работает нормально в listView
с адаптером, загружающим фотографии в первый раз. Вызов Picasso
внутри метода getView
Adapter
класс.
Просмотренные ссылки
- How would an anonymous class get GC'd in picasso on Android?
- ViewPager unable to load images lazily with Picasso
- http://square.github.io/picasso/
- https://plus.google.com/communities/109244258569782858265/stream/885843f4-c8b5-4851-9de1-b0374121dfa3
- Use of Target in Picasso on Adapter
- https://github.com/square/picasso/pull/349
Заранее спасибо.
Вы подключили слушателя к вашему экземпляру Picasso? Вы можете распечатать stacktrace и посмотреть, что такое ошибка. И какая версия Пикассо? – dnkoutso