首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RecyclerView更改高度,但子布局不反映新大小

RecyclerView是Android开发中常用的列表控件,用于展示大量数据的列表。当需要更改RecyclerView的高度,但子布局不反映新大小时,可以通过以下步骤实现:

  1. 首先,确保RecyclerView的布局参数已经设置为wrap_content,这样RecyclerView的高度会根据子布局的高度自动调整。
  2. 在更改RecyclerView的高度之前,先获取到RecyclerView的布局参数对象,可以通过getLayoutParams()方法获取。
  3. 修改布局参数对象的高度属性,可以通过height属性或者setHeight()方法进行修改。例如,将高度设置为新的值,比如newHeight
  4. 将修改后的布局参数对象重新设置给RecyclerView,可以通过setLayoutParams()方法进行设置。
  5. 最后,调用RecyclerView的requestLayout()方法,通知RecyclerView重新布局,使子布局不反映新的大小。

以下是示例代码:

代码语言:txt
复制
// 获取RecyclerView的布局参数对象
ViewGroup.LayoutParams layoutParams = recyclerView.getLayoutParams();

// 修改布局参数对象的高度属性
layoutParams.height = newHeight;

// 将修改后的布局参数对象重新设置给RecyclerView
recyclerView.setLayoutParams(layoutParams);

// 通知RecyclerView重新布局
recyclerView.requestLayout();

这样,RecyclerView的高度就会根据新的值进行调整,而子布局不会反映新的大小。

对于RecyclerView的优势和应用场景,RecyclerView具有高度灵活性和性能优化的特点,适用于需要展示大量数据的列表界面。它可以通过ViewHolder的复用机制和局部刷新的方式,提高列表的滑动流畅性和内存使用效率。

腾讯云提供了云计算相关的产品和服务,其中与移动开发相关的产品包括云服务器、云存储、云数据库等。你可以通过腾讯云官网了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

原生长列表内嵌 Flutter 卡片性能调研

,也就是 9 对 FlutterView/FlutterEngine(实际个数跟 RecyclerView 的高度和卡片的高度有关); 为了模拟真实的场景,我们会在 RecyclerView 重用 FlutterCard...对象时,会重新随机产生一个新的卡片高度,并通过 MessageChannel 通知 FlutterEngine 更新内容,触发该卡片的 Widget 树的更新和重布局,每个卡片显示一张图片和两段文本;...Pixel,在现在来说算是性能比较差了,可以更好地反映实际的状况。...卡片空白帧数 在 Demo 的场景中,RecyclerView 在惯性滚动时,将新的卡片从不可见区域移进可见区域,触发了 TextureView 的绘制,而 TextureView 的 Surface...RecyclerView 会提前一些将卡片加入 View 树参与布局 按照原生的逻辑,Flutter 需要在 Surface Create 时才触发 ScheduleFrame。

1.4K20
  • Recyclerview竟能如此丝滑,这14个优化策略不容错过...

    优化思路 RecyclerView 性能优化的核心思路可以概括为以下几个方面: 布局优化: 优化 RecyclerView 的布局结构,减少嵌套层级,提高布局效率。...布局优化 减少布局嵌套 避免在RecyclerView的Item布局中使用过多的嵌套布局和复杂的层次结构,这会增加渲染的时间和消耗。...会假设所有的Item的高度是固定的,不会因为Item的变化而触发重新计算布局,避免requestLayout导致的资源浪费。...如果Item高度不固定或者会发生变化,应该避免使用该方法,否则可能导致布局显示异常。...(size)方法来设置缓存大小,可以控制RecyclerView中缓存ViewHolder的数量,避免过多的缓存占用过多内存。

    1.6K10

    教你玩转 Android RecyclerView:深入解析 RecyclerView.ItemDecoration类(含实例讲解)

    2.1.3 源码分析 RecyclerView本质上是一个自定义ViewGroup,子视图child = 每个ItemView 其通过 LayoutManager测量并布局 ItemView public...使用场景:设置View的边界大小,使得其大小>View的背景大小 // 如 按钮图标(View的背景)较小,但是我们希望按钮有较大的点击热区(View的边界大小) // 返回到分析1进来的原处 总结...区域 // 获取RecyclerView的Child view的个数 final int childCount = parent.getChildCount(); // 设置布局参数...时添加该分割线即可 Rv = (RecyclerView) findViewById(R.id.my_recycler_view); //使用线性布局 LinearLayoutManager...时添加即可 * Rv = (RecyclerView) findViewById(R.id.my_recycler_view); //使用线性布局 LinearLayoutManager

    2K21

    RecyclerView 居然还能实现吸底效果

    测量RecyclerView内容高度实现 这种方式很直观,我们先获取RecyclerView控件的高度h1,设置完数据后再获取RecyclerView的内容高度h2,然后将h1与h2进行比较: ①如果h1...通过recyclerView#getHeight方法获取到的高度是固定的,就是布局文件中设定的recyclerView高度。...②让Adapter支持两种布局,普通Item和Footer布局 ③在给RecyclerView设置完数据后,获取RecyclerView的控件高度h1和RecyclerView的内容高度h2 ④如果h1...但它的缺点也很明显,需要根据不容的业务去计算不同的View的高度。 一般不推荐这种方式去实现,不过它可以当做一个保底方案,毕竟简单粗暴易理解易实现。...这里需要说明的是,这种方法实现的核心是getItemOffsets预留空间,onDrawOver直接在Item上层绘制新的悬停布局,悬停布局不复用ItemView。

    3.1K20

    关于RecyclerView你知道的不知道的都在这了(上)前言目录正文

    ViewPager 的 setAdapter() 来刷新,那么此时,旧的 fragment 其实就全被移除掉了,然后 new 了新的 fragment 绘制新的布局信息。...这样,新的 fragment 里新的 RecyclerView 的 item 就又需要全部重新创建了,如果用这个方法开启了回收工作,那么当旧的 fragment 被移除时会触发到 RecyclerView...如果 RecyclerView 高度不足以让所有行都显示出来,那么就会出现 item 重叠现象。...setSpanSizeLookup() 通常情况下,网格布局样式下,每个小格的大小基本都是一样的,但如果我们想实现如下的效果呢: ?...就以上上图的布局为例,来看下打出来的日志: ? 日志.png 得到的结果是个数组,数组的大小就是构造方法中传入的 spanCount。

    3.2K60

    Android魔术系列:一步步实现滑动折叠列表

    而且,为了能让最后的item也可以凸显出来,我们需要在列表的结尾插入一个footer以保证最后的item可以置顶显示,如图: Item布局 效果分析完了,下面我们来看看如何实现。...scale_item_content中是那些大小可变的文字内容 布局比较简单,后面会讲到如何使用这些layout达到效果。 另外还有一个footer的布局,因为很简单就不贴出代码了。...这里之所以再加上10像素,是因为如果设置高度正好是余下的高度,当快速滑动到底部的时候有几率会出现问题,所以这里让高度略大于实际展示的高度。...这个偏移是关键参数,通过这个偏移计算出第一个item收缩的高度和第二个item展开的高度,并且计算第二个item遮罩的透明度和文字内容的大小。...其中changeItemHeight(view, int)用来改变item的高度实现展开或折叠;而changeItemState(view, float, float)用来改变遮罩透明度和文字内容大小。

    1K10

    RecyclerView addItemDecoration 的妙用 - item 间距平均分布和添加分割线

    可以影响 item 的大小,类似于在 item 中设置 padding 和 margin。...实现思路 我们知道 RecyclerView 没有像之前 ListView 提供 divider 属性,设置分割线的话有挺多人在 itemView 的布局里面加个 1dp 左右的 view,根据业务场景设置是否可见...getItemOffsets,加上 divider 的高度,影响 itemView 的最终 size 在 onDraw 方法,根据 LinearLayoutManager 的方向分别绘制分割线 @Override...假设我们 spancount 为 3,那么在不设置 itemDercation 的情况下它的分布是这样的,可以看到第一列与最后一行的距离是不一样的 ?...int maxDividerWidth = getMaxDividerWidth(view); int spaceWidth = mFirstAndLastColumnW;//首尾两列与父布局之间的间隔

    6.9K41

    ItemTouchHelper 实现交互动画

    item的数据位置交换,再调用RecyclerView的notifyItemMoved()方法刷新布局,同时,因为RecyclerView自带item动画,就可以完成上面的交互效果。...itemView而已,当那两个透明缩小的itemView被再次使用时,之前设置的透明度和高度比例已经是0,所以就出现了这种情况,解决方法也很简单,只要在item被移除后,将itemView的透明度和高度比例设置回来即可...11.RecyclerView上拉加载 添加recyclerView的滑动事件,上拉加载分页数据,设置上拉加载的底部footer布局,显示和隐藏footer布局 12.RecyclerView缓存原理...RecyclerView做性能优化要说复杂也复杂,比如说布局优化,缓存,预加载,复用池,刷新数据等等 13.SnapHelper源码分析 SnapHelper旨在支持RecyclerView的对齐方式,...横向滑动到底后不滑动ViewPager 05.RecyclerView嵌套RecyclerView的滑动冲突问题 06.RecyclerView使用Glide加载图片导致图片错乱问题解决 24.ScrollView

    3.9K20

    Android面试题之如何截取Activity或者Fragment的内容?

    首先确保控件的drawingCache被启用,然后创建一个与控件大小相同的Bitmap,并使用Canvas将控件的内容绘制到这个Bitmap上。...2、 计算RecyclerView的总高度: 通过遍历RecyclerView的每个Item,测量它们的高度并累加起来,以确定RecyclerView的总高度。...3、 滚动RecyclerView: 使用scrollTo()或scrollBy()方法将RecyclerView滚动到顶部,然后逐屏截取内容,直到覆盖整个RecyclerView的高度。...4、 绘制每个屏幕的内容: 在滚动过程中,每次RecyclerView滚动到新的屏幕位置时,使用draw()方法将当前屏幕的内容绘制到Canvas上。...此外,这个方法没有考虑到RecyclerView的复杂布局和可能的异步加载问题,因此在实际应用中可能需要进一步的调整和优化。 END 点赞转发,让精彩不停歇!

    9210

    壹二APP开发实践回顾总结出40条精要

    它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...说到这里你也要小心引入或者打开了 -dontobfuscate ,这个就是说不混淆了。所以最后你是不是发现混淆和不混淆怎么都一样了?! 我在抄 zxing 的时候不小心引入了。...的时候没法给当爹去填充布局。...链接 29、 RecyclerView 更新数据如果有动画的话,那么应该先清除所有的数据,再添加新的数据,不然动画效果和以前的列表会同时出现,特别诡异。...32、TextView 指定最大行数 应该用的都多,如果高度又需要固定,可以使用LinearLayout的weight指定,但是weight是不建议嵌套使用的,其实这里可以考虑使用 minLine 来限定最小高度

    89040

    RecyclerView性能优化

    DiffUtil是support包下新增的一个工具类,用来判断新数据和旧数据的差别,从而进行局部刷新。...减少过度绘制 减少布局层级,可以考虑使用自定义View来减少层级,或者更合理的设置布局来减少层级。...Note: 目前不推荐在RecyclerView中使用 ConstraintLayout,在ConstraintLayout1.1.2版中,性能还是表现不佳,后续的版本可能这个问题就解决了,需要持续关注...可以使用代码去生成布局,即 newView()的方式。这种方式是比较麻烦,但是在布局太过复杂,或对性能要求比较高的时候可以使用。...设置高度固定 如果item高度是固定的话,可以使用 RecyclerView.setHasFixedSize(true);来避免requestLayout浪费资源。

    1.9K60

    常用Android布局文件优化技巧总结

    在布局文件中,可以定义各种视图元素,如 TextView、Button、ImageView 等。每个视图元素都可以设置一些属性,如宽度、高度、边距、背景颜色等。...这些属性可以用来控制视图元素在布局中的位置和大小。 布局文件的解析过程 当应用程序启动时,Android 系统会将布局文件解析成一个视图层次结构,然后将其加载到内存中。...在解析布局文件时,Android 系统会使用反射机制来动态地创建视图对象。这意味着,每当系统遇到一个新的视图元素时,它会使用 Java 反射来创建该元素的实例。...include 标签可以将一个布局文件嵌入到另一个布局文件中,从而减少代码的重复性和布局文件的大小。可以使用 include 标签来分离重复的代码,并提高布局文件的复用性。...使用 RecyclerView 来优化列表布局。 在应用程序中,列表布局是最常用的视图之一。

    26220
    领券