android先显示上个动画,android – 下一个和上一个动画

博主遇到一个关于PopupWindow的问题,在用户左右滑动时,PopupWindow的数据在列表中切换,但因为为两个方向的动画分别设置了样式,导致动画重叠显得不稳定。尝试在动画改变后调用`update()`方法,反而使动画效果变得更糟。寻求解决方案。
摘要由CSDN通过智能技术生成

当用户选择列表中的项目时,我弹出了PopupWindow.然后当他在弹出窗口中左右滑动时,数据(在弹出窗口中)分别变为列表中的上一个和下一个项目.

我已经做到这一点,当用户向右滑动手指(“下一步”动作)时,当左边的当前窗口从屏幕右侧熄灭时,它看起来像是从左侧滑入的新弹出窗口.反之亦然“上一步”动议.

但问题是,因为我为两个动画制作了两种风格(左到中间,中间到右边,右到中间,中间到左边),而且PopupWindows没有更新显示,当用户向右滑动(“下一步”)然后向左滑动(“上一步”)时,动画看起来不稳定,因为2个动画重叠.当滑动再次反转时也会发生同样的情况.

现在,如果我在更改动画后调用update(),它会再次滑入中间.那更糟糕的是.那么我能做些什么来实现我想要的行为呢?

谢谢.

编辑:源代码

这是我用来第一次显示弹出窗口的代码:

popup1 = new PopupWindow(popupLayout, popup_width, popup_height, true);

popup1.setAnimationStyle(R.style.AnimationPopup);

popup1.showAtLocation(this.findViewById(R.id.main_container), Gravity.CENTER, 0, 0);

这是next()方法的代码:

if(popup2 != null) popup1 = popup2;

if(popup1 != null) {

popup2 = new PopupWindow(popupLayout, popup_width, popup_height, true);

popup2.setAnimationStyle(R.style.AnimationPopup);

popup1.dismiss();

popup2.showAtLocation(rootLayout, Gravity.CENTER, 0, 0);

}

这是prev()方法的代码:

if(popup2 != null) popup1 = popup2;

if(popup1 != null) {

popup2 = new PopupWindow(popupLayout, popup_width, popup_height, true);

popup2.setAnimationStyle(R.style.AnimationPopupReverse);

popup1.setAnimationStyle(R.style.AnimationPopupReverse);

popup1.dismiss();

popup2.showAtLocation(rootLayout, Gravity.CENTER, 0, 0);

}

这就是Java代码的全部内容. AnimationPopup是一个XML,可以简单地显示从右到中的幻灯片以及从中心到左侧动画的隐藏幻灯片.而AnimationPopupReverse与上述动画相反.

我已经提供了我的第一次尝试代码.此处,更改的动画在显示另一个弹出窗口后生效.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值