【发布时间】:2014-10-22 22:05:57
【问题描述】:
我目前在测量 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 在屏幕上呈现之前正确测量它的高度?
谢谢。
【问题讨论】:
标签: android android-view android-recyclerview android-viewgroup