Tôi đang triển khai tiện ích với chế độ xem danh sách dựa trên hướng dẫn này: http://laaptu.wordpress.com/2013/07/24/populate-appwidget-listview-with-remote-datadata-from-web/ (mã nguồn: https://github.com/laaptu/appwidget-listview/tree/appwidget-listview2/).Picasso: tải hình ảnh vào chế độ xem danh sách widget
Mục danh sách xem chứa văn bản & hình ảnh, để tải hình ảnh tôi sử dụng Picasso.
getViewAt thực hiện:
public RemoteViews getViewAt(int position) {
final RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.listview_item);
ListItem listItem = listItemList.get(position);
remoteView.setTextViewText(R.id.headline, listItem.headline);
final String imageUrl = listItem.image;
handler.post(new Runnable() {
@Override
public void run() {
if (!Utils.isEmpty(imageUrl)) {
picasso.load(imageUrl)
.placeholder(R.drawable.empty_photo)
.into(remoteView, R.id.picture, new int[] { appWidgetId });
}
}
});
return remoteView;
}
Khi hình ảnh được nạp, nó phá vỡ bố cục.
Điều gì có thể là vấn đề có thể xảy ra? Hay tôi đang làm gì sai?
Nếu không có hình ảnh tải:
Làm thế nào nó trông sau khi hình ảnh được tải:
UPDATE:
Cùng xảy ra nếu tôi chỉ cần thêm một vài chế độ xem từ xa lồng nhau (tất cả được tăng từ một layout)
UPDATE2:
Báo cáo sự cố: https://github.com/square/picasso/issues/587
lạ, vấn đề vẫn còn mở :) https://github.com/square/picasso/issues/587 –
@ ab.helly có đúng. Điều này không làm việc trong một listview tiếc là Picasso cần phải gọi trở lại vào chủ đề chính. Trong một dịch vụ từ xa listview, bạn đã có một chủ đề nền.Tôi cũng đã làm việc xung quanh việc này, bằng cách lưu trữ các bitmap được lưu trong bộ nhớ cache trong một bản đồ và phục vụ chúng theo cách đó. Ban đầu tôi nhận được chúng bằng cách sử dụng Picasso và thay đổi kích thước để đảm bảo hiệu suất tối ưu. – ngatirauks