我目前在测量 recyclerView 出现之前遇到问题。我需要 measureHeight 才能开始“展开”动画。
这是以前在我正在处理的代码中为 gridView 完成的,我正在尝试使用 GridLayoutManager 将其迁移到 RecyclerView
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
final int heightSpec = View.MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK, View.MeasureSpec.AT_MOST);
mGridView.measure(widthSpec, heightSpec);
int targetHeight = mGridView.getMeasuredHeight();
它与 gridView 一起工作,但如果我在 recyclerView 上调用具有相同测量规格的测量方法,结果总是 16777215,我认为这可能是某些东西的最大值,但我不能说是什么。
我看到一些帖子解释说,可以通过以下测量规格测量视图,然后在屏幕上呈现视图之前对其进行测量:
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
final int heightSpec = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
但我为 recyclerView.getMeasuredHeight(); 得到 0。
有没有办法在 recyclerView 在屏幕上呈现之前正确测量它的高度?
谢谢。