У меня есть GridView макетов, которые можно динамически добавлять или удалять в сетку.
В iOS собственное поведение элементов GridView заключается в том, что другие элементы сетки будут перемещаться по месту удаленного элемента или скользить, чтобы освободить место при добавлении нового элемента.
Однако на Android поведение просто для того, чтобы изменения моментально появлялись на экране. Я попытался добавить пользовательские анимации к каждому вызову getView(), используя некоторые трюки в адаптере GridView, но это привело к возникновению некоторых проблем:
Я пытался, чтобы отдельные представления управляли анимацией вместо метода getView() адаптера, но конечный результат был идентичным.
Я также попытался использовать GridLayoutAnimationController, например:
Animation animation = AnimationUtils.loadAnimation(mActivity, R.anim.grid_item_fadein);
GridLayoutAnimationController controller = new GridLayoutAnimationController(animation, .2f, .2f);
mGrid.setLayoutAnimation(controller);
Это работает с начальной загрузкой всего содержимого GridView, но любые изменения в этом содержимом сразу же появляются, как и по умолчанию.
Я чувствую, что это довольно простая функция, и должен быть более простой способ сделать это. Лучшее, что я видел при поиске в Интернете, - это библиотека, которая анимирует элементы GridView, которые меняют места в сетке, но это не то, что я Я ищу (в той же библиотеке, когда вы удаляете элемент из Grid через удаление, тот же самый мгновенный эффект, который я пытаюсь избежать, возникает).
Общим ответом на SO, который я также видел, является "Посмотрите на APIDemos, есть много примеров". Но, насколько я вижу, на самом деле нет примеров для анимации изменений содержимого GridView.
Любая помощь приветствуется, спасибо.