2016-07-26 2 views
1

Итак, я пытаюсь реализовать горизонтальный свиток в InfoWindow. Я использую карты Google, и я хочу реализовать горизонтальную прокрутку с изображениями в моем пользовательском InfoWindowAdapter.Горизонтальный RecyclerView показывает только один элемент

Итак, Я заполняю arraylist целых чисел с идентификатором ресурса примерного изображения.

Как только я устанавливаю адаптер recyclerview, отображается только 1 элемент, хотя отладка останавливается 10 раз, когда она получает длину счета элемента в адаптере просмотра ресайклера.

Так, Мой RecyclerView адаптер следующее:

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

}

И я поставил адаптер в RecyclerView в следующем:

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

И мой InfoWindow XML для компоновки информационного наполнения является следующее:

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

Он заканчивается только показывает одно изображение, когда я четко сделал список с 10 изображениями ....

Это конечный результат (черные ящики является примером того, что я хочу, чтобы достичь Final result (the black boxes is an example of what I want to achieve

+0

Надеюсь, у вас проблема исправлена. Примите, пожалуйста, ответ, если да. – LvN

ответ

6

Пожалуйста, попробуйте

android:layout_width="wrap_content" 

на RecyclerView и в корне single_row_stop_image.xml убедитесь, что вы добавить

android:layout_width="wrap_content" 
Смежные вопросы