В настоящее время у меня возникает проблема при измерении recyclerView до его появления. Мне нужна измеренная высота, чтобы запустить анимацию «расширения».
Ранее это было сделано для gridView в коде, над которым я работаю, и я пытаюсь перенести его в RecyclerView с помощью GridLayoutManager.
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);
но я получаю 0 для recyclerView.getMeasuredHeight();.
Есть ли способ правильно измерить высоту recyclerView до того, как он будет отображаться на экране?
Спасибо.