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.

  • Problema de RecyclerView OnScrollListener ()
  • Android - Implementación del filtro de búsqueda en un RecyclerView
  • La mejor manera de actualizar datos con un adaptador RecyclerView
  • Error de Android RecyclerView
  • Detectar cuando RecyclerView alcanza la posición más baja durante el desplazamiento
  • Configuración dinámica de una altura fija para una vista de cuadrícula escalonada
  • RecyclerView con GridLayoutManager
  • Retroalimentación de RecyclerView + CardView + Touch
  • Google Maps Lite Mode causa jank en RecyclerView
  • Problemas de procesamiento: java.lang.NullPointerException en android.support.v7.widget.RecyclerView en Android Studio 1.1.0
  • Vista previa de recyclerview horizontal en android studio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.