Android 再循环视图:为适配器中的另一条管路布局充气

Android 再循环视图:为适配器中的另一条管路布局充气,android,android-layout,android-recyclerview,android-linearlayout,layout-inflater,Android,Android Layout,Android Recyclerview,Android Linearlayout,Layout Inflater,我正在尝试在必要时将两行线性布局充气到我的自定义适配器中。为了避免在ListView的边缘截断膨胀的LinearLayout,我想将每行膨胀的图像数限制为5 BLOCKLAYOUT.XML <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" a

我正在尝试在必要时将两行线性布局充气到我的自定义适配器中。为了避免在ListView的边缘截断膨胀的LinearLayout,我想将每行膨胀的图像数限制为5

BLOCKLAYOUT.XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">

</LinearLayout>
在那里,当我到达图像列表中的第5项时,我应该以水平方向将另一行/行线性布局充气。。。显然是第6项,而不是第1项

public BlockAdapter(Context context,List<Cscore> blocks, int pos) {
        this.mContext = context;
        this.blocks = blocks;
        this.currentPosition = pos;
    }

    @Override
    public int getItemCount() {
        return 1;
    }

    @Override
    public BlockAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.block_layout, parent, false));
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        if(blocks != null) {
            holder.bind(blocks.get(currentPosition),null);
        }
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        private final List<ImageView> imageViews = new ArrayList<>();
        private final ViewGroup container;

        public ViewHolder(View v) {
            super(v);
            container = (ViewGroup) itemView;
        }

        public void bind(Cscore block) {
            recycleImageViews();
            if(block !=null) {

                for (int i = 0; i < block.getMaxscore(); ++i) {
                    final ImageView imageView = getRecycledImageViewOrCreate();
                    Picasso.get().load(block.getImgurl()).into(imageView);
                    imageViews.add(imageView);
                    container.addView(imageView);


                }
            }

        }

        private ImageView getRecycledImageViewOrCreate() {
            if (imageViewPool.isEmpty()) {
                return (ImageView)LayoutInflater.from(container.getContext()).inflate(R.layout.imageView, container, false);
            }
            return imageViewPool.remove(0);
        }

        public void recycleImageViews() {
            imageViewPool.addAll(imageViews);
            imageViews.clear();
            container.removeAllViews();
        }
    }

    @Override
    public void onViewRecycled(ViewHolder holder) {
        super.onViewRecycled(holder);
        holder.recycleImageViews();
    }
}
<ImageView android:id="@+id/block"
    android:layout_width="@dimen/icon_l"
    android:layout_height="@dimen/icon_l" />
public void bind(Cscore block) {
recycleImageViews();
if(block !=null) { ...}  
imageViews.add(imageView);
container.addView(imageView);
}