水平RecyclerView仅显示一个项目

时间:2016-07-26 10:06:37

标签: android android-recyclerview horizontallist

所以我试图在InfoWindow中实现水平滚动。 我正在使用谷歌地图,我想在我的自定义InfoWindowAdapter中实现带有图像的水平滚动。

所以, 我用示例图像的资源ID填充整数的arraylist。

一旦我设置了recyclerview的适配器,只显示一个项目,即使调试在获取回收器视图适配器上的项目计数长度时停止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 用于infowindow的布局如下:

<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

1 个答案:

答案 0 :(得分:7)

请尝试

 android:layout_width="wrap_content"

在RecyclerView和single_row_stop_image.xml的根目录中确保添加

android:layout_width="wrap_content"