Tôi có HorizontalGridView và tất cả đều hoạt động tốt, tuy nhiên tôi đang tải hình ảnh với Picasso và bất cứ khi nào ảnh tải, HorizontalGridView sẽ quay lại vị trí đầu tiên/bắt đầu cuộn. Tôi cũng có một mảnh bản đồ về hoạt động và nhận thấy rằng khi bản đồ được tương tác với, HorizontalGridView hiển thị cùng một hành vi. Dưới đây là mã bộ điều hợp. Hãy giúp đỡ, đã bị mắc kẹt trên một này trong một vài ngày bây giờ ...HorizontalGridView/RecyclerView di chuyển vị trí cuộn khi hình ảnh Picasso tải
public class GridElementAdapter extends RecyclerView.Adapter<GridElementAdapter.SimpleViewHolder>{
private Context context;
private Deal[] mDeals;
public GridElementAdapter(Context context, Deal[] deals){
this.context = context;
this.mDeals = deals;
}
public static class SimpleViewHolder extends RecyclerView.ViewHolder {
public final ImageView dealImage;
public final TextView dealTitle;
public final TextView dealSubtitle;
public final TextView dealPrice;
public final TextView dealTime;
public final TextView dealDays;
public SimpleViewHolder(View view) {
super(view);
dealImage = (ImageView) view.findViewById(R.id.gridDealImageView);
dealTitle = (TextView) view.findViewById(R.id.gridTitleLabel);
dealSubtitle = (TextView) view.findViewById(R.id.gridSubtitleLabel);
dealPrice = (TextView) view.findViewById(R.id.gridPriceLabel);
dealTime = (TextView) view.findViewById(R.id.gridAvailableTimeLabel);
dealDays = (TextView) view.findViewById(R.id.gridAvailableDaysLabel);
}
}
@Override
public SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view = LayoutInflater.from(this.context).inflate(R.layout.deal_grid_item, parent, false);
return new SimpleViewHolder(view);
}
@Override
public void onBindViewHolder(SimpleViewHolder holder, final int position) {
String dealImageUrl = "http://api.cheapeat.com.au/deals/" + mDeals[position].getPhotoId() + "/photo";
Context context = holder.dealImage.getContext();
Picasso.with(context).load(dealImageUrl).placeholder(R.drawable.deal_image_placeholder).into(holder.dealImage);
holder.dealTitle.setText(mDeals[position].getName());
holder.dealPrice.setText(mDeals[position].getPriceData());
holder.dealSubtitle.setText(mDeals[position].getDescription());
holder.dealTime.setText(mDeals[position].getAvailabilityTime());
holder.dealDays.setText(mDeals[position].getFormattedAvailableDays(mDeals[position].getAvailabilityDay()));
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemCount() {
return this.mDeals.length;
}
}