Как «сжать» GridView до высоты одной строки и прокрутить до указанной c строки? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть ViewPager и на каждой странице у меня есть GridView с адаптером. Строки GridView имеют фиксированную высоту. В одном случае мне нужно сделать следующее:

  1. Прокрутить GridView в заданную c строку.
  2. Уменьшить GridView до высоты строки, если видна только одна строка ИЛИ уменьшить ViewPager для высоты строки, так что видна только одна строка.

Я пробовал это:

ViewGroup.LayoutParams params = pager.getLayoutParams();
    params.height = rowHeight;
    pager.setLayoutParams(params);
    grid.scrollTo(0, row * rowHeight);

ИЛИ

ViewGroup.LayoutParams params = grid.getLayoutParams();
    params.height = rowHeight;
    grid.setLayoutParams(params);
    grid.scrollTo(0, row * rowHeight);

Но эффект тот же - после этого в GridView ничего не отображается.

Если я делаю только один из шагов: Только сжатие ИЛИ только прокручиваю строку, я вижу содержимое Но если я делаю оба - содержимое не отображается.

ПРИМЕЧАНИЕ. Мне нужна прокрутка только на GridView на активной странице ViewPager. Если я перейду к следующей / предыдущей странице - сетка там в порядке, даже пейджер сжимается.

В следующем случае я должен восстановить размер GridView / Pager и Scroll GridView снова до 0,0.

...