水平 RecyclerView 仅显示一项
Horizontal RecyclerView only showing one item
所以我试图在 InfoWindow 中实现水平滚动。
我正在使用 google 地图,我想在我的自定义 InfoWindowAdapter 中实现带有图像的水平滚动。
所以,
我用示例图像的资源 ID 填充整数数组列表。
一旦我设置了 recyclerview 的适配器,就只显示了 1 个项目,即使调试在获取 recycler 视图适配器上的项目计数长度时停止了 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 张图片的列表时,它最终只显示了一张图片....
这是最终结果(黑框是我想要实现的例子
请尝试
android:layout_width="wrap_content"
在 RecyclerView 和 single_row_stop_image.xml 的根目录中确保添加
android:layout_width="wrap_content"
所以我试图在 InfoWindow 中实现水平滚动。 我正在使用 google 地图,我想在我的自定义 InfoWindowAdapter 中实现带有图像的水平滚动。
所以, 我用示例图像的资源 ID 填充整数数组列表。
一旦我设置了 recyclerview 的适配器,就只显示了 1 个项目,即使调试在获取 recycler 视图适配器上的项目计数长度时停止了 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 张图片的列表时,它最终只显示了一张图片....
这是最终结果(黑框是我想要实现的例子
请尝试
android:layout_width="wrap_content"
在 RecyclerView 和 single_row_stop_image.xml 的根目录中确保添加
android:layout_width="wrap_content"