安卓recyclerView中item过多时,固定高度

当RecyclerView中的item数量过多时,可以采用三种方法设置其固定高度:1) 在代码中判断并设定;2) 重写RecyclerView创建MaxHeightRecyclerView;3) 如果父布局为ConstraintLayout,可以通过调整布局约束实现。
摘要由CSDN通过智能技术生成

查了资料可以有三种实现方式:

第一种:直接在代码中判断,当recycler元素大于某个个数时,就将recycler的高度固定;

private fun setRecyclerMaxHeigh(view: RecyclerView, maxHeight: Float) {
    val lp: ViewGroup.LayoutParams = view.getLayoutParams()
    if (view.childCount> 4) {
        Log.d("myLog", view.childCount.toString())
        lp.height = DensityUtil.dip2px(maxHeight)
    } else {
        Log.d("myLog", view.childCount.toString())
        lp.height = DensityUtil.dip2px(0f)
    }
    view.layoutParams = lp
}

第二种:重写RecyclerView加一个最大高度的属性MaxHeightRecyclerView:

public class MaxHeightRecyclerView extends RecyclerView {
    private int mMaxHeight;
    public MaxHeightRecyclerView(Context context) {
        super(context);
    }
    public MaxHeightRecyclerView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initialize(context, attrs);
    }
    public MaxHeightRecyclerVi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值