美文网首页
Android瀑布流设置单独某个Item占据一整行

Android瀑布流设置单独某个Item占据一整行

作者: 寻水的鱼Chock | 来源:发表于2021-10-18 14:30 被阅读0次

    我们可以给RecycleView设置不同的布局管理器,例如GridLayoutManager和StaggeredGridLayoutManager。以此来实现不同的列表排列效果。其中StaggeredGridLayoutManager即是我们常说的瀑布流式布局效果。

    使用GridLayoutManager比较多的同学会发现,它可以通过设置setSpanSizeLookup()动态的控制Item每一行占据的列数,实现多样的布局效果,但是StaggeredGridLayoutManager并没有,即使它名字是那么的相似。

    那如何在实现瀑布流式布局时,动态是设置使其占据一整行呢?

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val lp = holder.itemView.layoutParams
        if (getItemViewType(position) == VIEW_TYPE_FIRST_ITEM) {//判断是否需要占据整行
            if (lp is StaggeredGridLayoutManager.LayoutParams) {
                lp.isFullSpan = true
            }
        } else {
            if (lp is StaggeredGridLayoutManager.LayoutParams) {
                lp.isFullSpan = false
            }
        }
    }
    

    其设置生效的关键就是函数StaggeredGridLayoutManager.LayoutParams.setFullSpan(true)的调用。

    相关文章

      网友评论

          本文标题:Android瀑布流设置单独某个Item占据一整行

          本文链接:https://www.haomeiwen.com/subject/zfknoltx.html