HorizontalGridView / RecyclerLa posición de desplazamiento se restablece una vez que la imagen de Picasso se carga

Tengo un HorizontalGridView y todo está funcionando bien, sin embargo estoy cargando imágenes con Picasso y siempre que una imagen se carga, el HorizontalGridView se encaja de nuevo en el primer elemento / posición de desplazamiento inicial. También tengo un fragmento del mapa en la actividad y observo que cuando el mapa es interactuado con, el HorizontalGridView exhibe el mismo comportamiento. A continuación se muestra el código del adaptador. Por favor ayuda, han estado atrapados en éste por un par de días ahora …

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; } 

}

Así que finalmente logré resolver este. Resulta que no había configurado LayoutManager para el HorizontalGridView . En concreto, en la actividad en la que he configurado el adaptador:

 // Had this horizontalGridView = (HorizontalGridView) findViewById(R.id.gridView); GridElementAdapter adapter = newGridElementAdapter(VenueProfileActivity.this, mDeals); horizontalGridView.setAdapter(adapter); // This needed to be added HorizontalGridView.LayoutManager layoutManager = new LinearLayoutManager(VenueProfileActivity.this, LinearLayoutManager.HORIZONTAL, false); horizontalGridView.setLayoutManager(layoutManager); horizontalGridView.setHasFixedSize(true); 

Esperemos que esto ahorre algunos dolores de cabeza, como he visto esta pregunta flotando sin solución correcta todavía.

  • Combinar múltiples RecyclerView.Adapter para usar con RecyclerView único (Android)
  • Cómo rellenar la imagen dentro de ImageView por la costumbre de la izquierda y la coordenada superior | Androide
  • Java.lang.IllegalStateException: RecyclerView no tiene LayoutManager en Fragmento
  • Animar RecyclerView al desplazarse
  • Cómo implementar el desplazamiento sin fin con StaggeredLayoutManager
  • Cómo hacer la primera imagen más grande en Gridlayout?
  • Wrap_content en recycleview, toma altura del elemento (lista horizontal)
  • RecyclerView dentro de ScrollView / NestedScrollView no se desplaza correctamente
  • Haga clic en un elemento de la lista RecyclerView
  • Importación de CardView y RecyclerView (Android 5.0) en mi proyecto existente (eclipse)
  • Android RecyclerView con GridLayoutManager hace que el artículo abarque varias filas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.