Android GridLayoutManager.setSpanSizeLookup的使用介绍

简介: Android GridLayoutManager.setSpanSizeLookup的使用介绍

前言:

使用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);
    }
}


目录
相关文章
|
2月前
|
Shell API Android开发
android queries属性
android queries属性
117 2
|
2月前
|
开发工具 Android开发
Unknown android attribute android:popupPromptView under SherlockSpinner UnknownProjectException
Unknown android attribute android:popupPromptView under SherlockSpinner UnknownProjectException
26 1
|
11月前
|
安全 Java API
Android Strongbox( Android Ready SE)
Android Strongbox( Android Ready SE)
446 0
|
Android开发
DSL element ‘android.dataBinding.enabled‘ is obsolete and has been replaced with ‘android.buildFeatu
DSL element ‘android.dataBinding.enabled‘ is obsolete and has been replaced with ‘android.buildFeatu
183 0
|
Android开发 Java
Android--SwipeMenuListView的使用
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/79064198 一、实现效果: 二、分析 先看两个图:有一个大体的了解  这是框架中所有的类。
1145 0