Анимация движения элементов внутри окна просмотра и прокрутка экрана вверх - PullRequest
0 голосов
/ 29 мая 2019

У меня есть переписчик пользовательских моделей, которые имеют следующее поведение - при щелчке по каждому элементу строки этот герой является любимым и отображается в позиции 0 списка, в том числе на сворачивающейся панели инструментов.

Что бы я хотел, чтобы произошло следующее -

1) при нажатии на нового героя, он будет плавно анимировать вид до самого верха.

2) во время анимации экран будет следовать анимации полностью, вплоть до сворачивающейся панели инструментов, показывая новое название панели инструментов и изображение.

3) это не на 100% относится к этой проблеме, которую я публикую, но я постараюсь избежать новой публикации - при нажатии на нового героя и загрузке изображения на сворачивающуюся панель инструментов возникает небольшая задержка, которая видимый, пока изображение полностью не загружено. Что я могу сделать, чтобы иметь лучший UX?

вот мой метод, который управляет щелчками -


private void changeFavoriteHero(int position, boolean cameFromLocalStorage) {
        Hero currentHeroChosen = heroesArrayList.get(position);
        Picasso.get().load(currentHeroChosen.image)
                .fit()
                .centerCrop()
                .placeholder(R.drawable.ic_launcher_background)
                .error(R.drawable.ic_launcher_foreground)
                .into(toolbarImageView);
        collapsingToolbarLayout.setTitle(currentHeroChosen.title);
        if (!cameFromLocalStorage) {
            currentHeroChosen.setFavorite(!currentHeroChosen.isFavorite());
        } else {
            currentHeroChosen.setFavorite(true);
        }
        for (int i = 0; i < heroesArrayList.size(); i++) {
            if (i == position){
                Collections.swap(heroesArrayList, i, 0);
                // TODO - animate the movement of the layout
                continue;
            }
            heroesArrayList.get(i).setFavorite(false);
        }
        saveToLocal(heroesArrayList);
        heroesAdapter.notifyDataSetChanged();
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...