2016-07-26 3 views
1

Donc j'essaye d'implémenter un scroll horizontal dans un InfoWindow. J'utilise google maps et je veux implémenter un scroll horizontal avec des images dans mon InfoWindowAdapter personnalisé.Horizontal RecyclerAfficher seulement un élément

Donc, Je remplis une liste d'entiers avec l'ID de ressource d'un exemple d'image.

Dès que je définis l'adaptateur du recyclerview, seul un élément est affiché, même si le débogage s'arrête 10 fois lorsqu'il obtient la longueur du compte d'éléments sur l'adaptateur de vue recycleur.

Alors, Mon RecyclerView adaptateur est le suivant:

public class ImagesPreviewAdapter extends RecyclerView.Adapter<ImagesPreviewAdapter.ImagesHolder> { 

public ArrayList<Integer> list; 

public class ImagesHolder extends RecyclerView.ViewHolder { 
    ImageButton imgImage; 

    public ImagesHolder(View itemView) { 
     super(itemView); 

     imgImage = (ImageButton) itemView.findViewById(R.id.img_preview); 
    } 


} 

public ImagesPreviewAdapter(ArrayList<Integer> list) { 
    this.list = list; 
} 

@Override 
public ImagesHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row_stop_image, parent, false); 
    return new ImagesHolder(view); 
} 

@Override 
public void onBindViewHolder(ImagesHolder holder, int position) { 
    int imageid = list.get(position); 
    holder.imgImage.setImageResource(imageid); 
} 

@Override 
public int getItemCount() { 
    return list.size(); 
} 

}

Je tournai l'adaptateur du RecyclerView comme suit:

public View getInfoContents(Marker marker) {   
     ArrayList<Integer> images = new ArrayList<>(); 
     ImagesPreviewAdapter adapter; 


     for(int i = 0; i < 10; i++) { 
      images.add(R.drawable.torres2); 
     } 

     adapter = new ImagesPreviewAdapter(images); 
     RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); 
     recyclerImages.setLayoutManager(mLayoutManager); 
     recyclerImages.setItemAnimator(new DefaultItemAnimator()); 
     recyclerImages.setAdapter(adapter); 
} 

Et mon InfoWindow xml pour la disposition de l'infowindow est la suivante:

<android.support.v7.widget.RecyclerView 
    android:layout_width="300dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/recycler_images" 
    android:layout_below="@+id/img_rua" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="10dp" 
    android:orientation="horizontal"> 
</android.support.v7.widget.RecyclerView> 

Il finit par montrer une seule image, quand je l'ai clairement fait une liste avec 10 images ....

Ceci est le résultat final (les boîtes noires est un exemple de ce que je veux réaliser Final result (the black boxes is an example of what I want to achieve

+0

Nous espérons que vous avez résolu le problème. Veuillez accepter la réponse si oui. – LvN

Répondre

6

S'il vous plaît essayer

android:layout_width="wrap_content" 

sur RecyclerView et à la racine de single_row_stop_image.xml assurez-vous d'ajouter

android:layout_width="wrap_content"