我有一个FrameLayout可以识别滑动手势(向上和向下)。
例如:如果执行了向上滑动,我应该为当前视图(即MATCH_PARENT x MATCH_PARENT)设置动画,以便在新视图从底部出现的同时上升。
我可以用动画实现这个目标吗?
答案 0 :(得分:2)
我这样解决了:
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 :(得分:1)
如果要实际切换视图,则需要实现负责动画的AnimationListener。如果你想要更复杂的行为,比如视图之间的“手指跟随”滚动,你可能不得不使用更复杂的东西,但如果你只是说
if(I flicked upwards)
move view up
然后AnimationListener非常适合你。只需确保将侦听器设置为代码中的Animation
。
希望这有帮助!