Android GridLayoutManager.setSpanSizeLookup的使用介绍

Posted 路宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android GridLayoutManager.setSpanSizeLookup的使用介绍相关的知识,希望对你有一定的参考价值。

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。
👉点击跳转到教程

前言:
使用setSpanSizeLookup后的效果图如下


对应的Activity代码如下,setSpanSizeLookup的具体解释已经在代码中给出:

public class GrideActivity extends AppCompatActivity implements GrideAdapter.OnItemClickListener 
    private ActivityGrideBinding binding;
    private GrideAdapter grideAdapter;
    private List<GrideModel> grideModels = new ArrayList<>();
    private static final String TAG = "GrideActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this, R.layout.activity_gride);
        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3, RecyclerView.VERTICAL, false);
        binding.rvList.setLayoutManager(gridLayoutManager);
        for (int i = 0; i < 20; i++) 
            grideModels.add(new GrideModel("https://tse3-mm.cn.bing.net/th/id/OIP-C.ezHUw2d5cvio6idA9t5zCwHaEK?w=302&h=180&c=7&r=0&o=5&dpr=1.3&pid=1.7", "android开发"));
        
        grideAdapter = new GrideAdapter(grideModels);
        grideAdapter.setOnItemClickListener(this);
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() 
            @Override
            public int getSpanSize(int position) //列表项的占位规则
                Log.i(TAG, "getSpanSize,position:" + position);
                //返回该item所占的份数 那么下标为4的item占三份,那么则占据整个屏幕的宽。
                //注意一个item所占的份数,不能超过GridLayoutManager的spanCount
                return (1 + position) % 7 == 0 ? 3 : 1;
            
        );
        binding.rvList.setAdapter(grideAdapter);
    

    @Override
    public void onItemClick(int position) 
        ToastUtils.showShort(position);
    

以上是关于Android GridLayoutManager.setSpanSizeLookup的使用介绍的主要内容,如果未能解决你的问题,请参考以下文章

android RecyclerView GridLayoutManager 多布局(每个Item带标题)

使用带有 GridLayoutManager 的 RecyclerView 的简单 Android 网格示例(如旧的 GridView)

Android,以GridLayoutManager和ImageView为单元格内容的RecyclerView不适合垂直空间

android RecyclerView pinch zoom,ScaleGestureDetector&GridLayoutManager,with BigImageViewer,kotli

RecyclerView GridLayoutManager:如何自动检测跨度计数?

Android RecyclerView使用GridLayoutManager间距设置