中易网

如何实现让RecyclerView有不同尺寸的item

答案:1  悬赏:30  
解决时间 2021-02-27 18:38
如何实现让RecyclerView有不同尺寸的item
最佳答案
package tv.lesports.com.myrecyclerview;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;


import java.util.ArrayList;


public class RecyclerViewActivity extends Activity {
    private RecyclerView mRecyclerView;
    private HomeAdapter mAdapter;
    private ArrayList<SearchResultBean> mDataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recyclerview_layout);
        initData();
        mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
        GridLayoutManager manager = new GridLayoutManager(this, 4);
        manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
               SearchResultBean bean = mDataList.get(position);
                if (bean.getType() == 0) {
                    return 4;
                } else if(bean.getType() == 1){
                    return 2;
                }else{
                    return 1;
                }
            }
        });
        mRecyclerView.setLayoutManager(manager);
        mRecyclerView.setItemAnimator(new DefaultItemAnimator());
        mAdapter = new HomeAdapter(this, mDataList);
        mRecyclerView.setAdapter(mAdapter);
    }

    protected void initData() {
        mDataList = new ArrayList<SearchResultBean>();
        for (int i = 0; i < 50; i++) {
            SearchResultBean bean = new SearchResultBean();
            bean.setName(i + "");
            if (i == 0) {
                bean.setType(0);
            } else if (i > 0 && i <= 5) {
                bean.setType(1);
            } else {
                bean.setType(2);
            }
            mDataList.add(bean);
        }
    }
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
南宁市人民公园-轮滑场我想知道这个在什么地
想知道: 福州市 福州 平安保险理赔部 在哪
中高音调的流行音乐有哪些?
男孩13岁时左乳头痛怎么回事?
类似放牧欧洲的小说
求问一款用来剪辑小视频的笔记本电脑 看上一
以前同事借我手机去用,结果去贷款买了个手机
哪里能买到大前门香烟
打字的拼音怎么读
湘军电器在哪里啊,我有事要去这个地方
emf文件用什么打开
蹲监狱是在本地还是外地
飞发浦(新华路)地址在什么地方,我要处理点事
闪电快餐在哪里啊,我有事要去这个地方
高新刘国群诊所这个地址在什么地方,我要处理
推荐资讯
业务招待费都包括哪些费用
惠州大亚湾西区街道办计划生育服务所在什么地
男人不主动不拒绝是什么意思呢?
魔法禁书目录里面泡在水里那个- - 还是倒着的
ios7.1.2为什么任务栏从下面拉不上来
城市再好却终究不是家,你再好却终究不是我爱
蕴华街/玉湖路(路口)地址在什么地方,想过去
江苏高考体检,腋臭会不会被写到体检报告上?
如何制作女人的三角裤
健身房是不是很多美女
电大怎么样?
在常州交的住房公积金可以在贵州买房吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?