Использование анимации для прокрутки просмотров - PullRequest
2 голосов
/ 24 августа 2011

У меня есть FrameLayout, который распознает жесты смахивания (вверх и вниз).

Например: если выполняется смахивание, я должен анимировать текущее представление (то есть MATCH_PARENT x MATCH_PARENT), чтобы оно поднялось нав то же время новый вид снизу.

Я могу добиться этого с помощью анимации?

Ответы [ 2 ]

3 голосов
/ 24 августа 2011

Я решил так:

private void swipeUp() {
    current.currentPage++;

    final View hidingView = currentView;
    TranslateAnimation hide = new TranslateAnimation(0, 0, 0, -getHeight());
    hide.setAnimationListener(new AnimationListenerAdapter() {
        @Override
        public void onAnimationEnd(Animation animation) {
            hidingView.setVisibility(View.GONE);
        }
    });
    hide.setDuration(1000);
    hidingView.startAnimation(hide);

    TranslateAnimation show = new TranslateAnimation(0, 0, getHeight(), 0);
    show.setFillAfter(true);
    show.setDuration(1000);

    View nextView = getView();
    addView(nextView, createLP());

    nextView.startAnimation(show);
    currentView = nextView;
}
1 голос
/ 24 августа 2011

Если вы хотите на самом деле переключать представления, вам нужно реализовать AnimationListener , который заботится о анимации. Если вам нужно более сложное поведение, такое как прокрутка «следование пальцем» между представлениями, вам, вероятно, придется использовать что-то более сложное, но если вы просто говорите

if(I flicked upwards)
    move view up

тогда AnimationListener идеально подходит для вас. Просто убедитесь, что вы установили для слушателя код Animation.

Надеюсь, это поможет!

...