Using Animation to swipe views

后端 未结 2 1370
轻奢々
轻奢々 2021-01-15 02:12

I have a FrameLayout that recognize swipe gestures (up and down).

For example: if a swipe up are performed, I should animate the current view (that is MATCH_PARENT x

相关标签:
2条回答
  • 2021-01-15 03:08

    I solved this way:

    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;
    }
    
    0 讨论(0)
  • 2021-01-15 03:14

    If you want to actually switch views, you need to implement an AnimationListener that takes care of the animation. If you want more complex behavior like a "finger following" scroller between views, you will likely have to use something a bit more complex, but if you're just saying

    if(I flicked upwards)
        move view up
    

    then AnimationListener is perfect for you. Just make sure you set the listener to the Animation in code.

    Hope this helps!

    0 讨论(0)
提交回复
热议问题