回收商查看重新计算WRAP_CONTENT

2022-09-03 14:57:37

在23.2版本中,我们现在可以使用高度,这很棒。我正在这样做,但是我想在适配器中添加(或删除)项目后重新计算高度(从而增加或减少高度)。WRAP_CONTENTrecyclerView

我的特别是从1个项目开始,然后在用户进行选择时添加项目。所以我需要布局增加高度,直到一个点。理想情况下,当列表增加或减少时,平滑的动画会发生这种情况。RecyclerViewRecyclerView

在布局完成后,我们怎样才能做到这一点?WRAP_CONTENT

试:

recyclerview.requestLayout();

recyclerview.invalidate();

答案 1

我希望它能与.View.invalidate()

如果这不起作用,请尝试调用父视图或父视图。requestLayoutinvalidate


答案 2

RecyclerView 如何根据新的 LayoutManger 调整自身大小

RecyclerView 小组件为创建列表和网格以及支持动画提供了一个高级且灵活的基础。此版本为布局管理器 API 带来了一个令人兴奋的新功能:自动测量!这允许 RecyclerView 根据其内容的大小来调整自身大小。这意味着以前不可用的方案(例如,将WRAP_CONTENT用于 RecyclerView 的某个维度)现在是可能的。您会发现布局管理器中内置的所有内容现在都支持自动测量。

由于此更改,请确保仔细检查项目视图的布局参数:以前忽略的布局参数(例如滚动方向上的MATCH_PARENT)现在将完全遵守。

如果你有一个自定义的 LayoutManager,它没有扩展其中一个内置的 LayoutManagers,这是一个选择加入的 API - 你将需要调用 setAutoMeasureEnabled(true),并进行一些小的更改,如该方法的 Javadoc 中所述。

请注意,尽管 RecyclerView 会为其子级设置动画,但它不会对自己的边界更改进行动画处理。如果要在 RecyclerView 边界更改时对其进行动画处理,可以使用转换 API。

请阅读此内容


推荐