RecyclerView根据条目设置高度,固定RecyclerView列表区域的高度,超出范围的,在范围内上下滑动

应用场景:参考的效果是2345天气app的侧边栏的收藏城市列表的效果
想做出来的效果是:当rv(RecyclerView)的item数量达到某个值时,固定rv布局列表的高度,多出来的item在rv的布局里上下滑动:

效果步骤:1.在xml里布局里RecyclerView的layout_height一定要设置wrap_content,如图所示:
在这里插入图片描述
第二步:Java代码

    void editRvHeight() {
    
    
        //编辑的rv
        RecyclerView.Adapter editAdapter = mRvEditCollect.getAdapter();
        int itemCount2 = editAdapter.getItemCount();
        if (itemCount2 > 0) {
    
    
            RecyclerView.ViewHolder editHolder = editAdapter.createViewHolder(mRvEditCollect, editAdapter
                    .getItemViewType(1));
            editAdapter.onBindViewHolder(editHolder, 1);
            editHolder.itemView.measure(
                    View.MeasureSpec.makeMeasureSpec(mRvEditCollect.getWidth(), View.MeasureSpec.EXACTLY),
                    View.MeasureSpec.makeMeasureSpec(1, View.MeasureSpec.UNSPECIFIED));
            editHolder.itemView.layout(1, 1, editHolder.itemView.getMeasuredWidth(),
                    editHolder.itemView.getMeasuredHeight());
            editHolder.itemView.setDrawingCacheEnabled(true);
            editHolder.itemView.buildDrawingCache();

            int measuredHeight = editHolder.itemView.getMeasuredHeight();
            LinearLayout.LayoutParams editLeftLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    measuredHeight * 10);
            mRvEditCollect.setLayoutParams(editLeftLayoutParams);
        }

    }

效果就是类似吸顶的哪种效果,其实也不是,数量到达一定高度,固定高度内进行滑动,步影响其它的功能区域
效果画面图:
在这里插入图片描述

有问题加我的技术讨论群:进行讨论:
qq群:620211664,
我的qq号:1393508286

猜你喜欢

转载自blog.csdn.net/ShiXinXin_Harbour/article/details/118765403