android技术Android

RecyclerView使用StaggeredGridLayou

2021-11-24  本文已影响0人  带带我

一般做瀑布流用这个,就不说了,主要说一下下面这种布局


微信截图_20211124144651.png

设置适配器adapter

ManagerAdapter adapter = new ManagerAdapter(this, list);
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(5, StaggeredGridLayoutManager.VERTICAL));
recyclerView.setAdapter(adapter);

主要是在adapter中为分组标题项设置宽度

    @NonNull
    @Override
    public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        MyHolder myHolder = null;
        View view = null;
        //在使用recyclerview做不同布局,都是用getItemViewType()方法,这个真不用说了,viewType=0标题项
        if (viewType == 0){
            view = LayoutInflater.from(mContext).inflate(R.layout.item_title_layout, parent, false);
            //给itemView设置宽度就可实现上图UI
            StaggeredGridLayoutManager.LayoutParams params = new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            params.setFullSpan(true);
            myHolder = new MyHolder(view);
            myHolder.itemView.setLayoutParams(params);
        } else if (viewType == 1){
            view = LayoutInflater.from(mContext).inflate(R.layout.item_content_layout, parent, false);
            myHolder = new MyHolder(view);
        }
        return myHolder;
    }

上一篇 下一篇

猜你喜欢

热点阅读