popupwindow设置了消失动画,消失动画结束后有出现了。。。要怎么解决。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了popupwindow设置了消失动画,消失动画结束后有出现了。。。要怎么解决。。相关的知识,希望对你有一定的参考价值。
如题。。。。
参考技术A 我记得动画播放完了默认会回到播放前的状态,所以你要在动画播放完成后dismiss掉PopupWindow,动画播放完成的事件可以监听追问弱弱的问一下。。。怎么监听。。。我就是不知道监听事件是哪个。。。。
追答animation.setAnimationListener(new DownViewListener());
private class DownViewListener implements AnimationListener
public void onAnimationEnd(Animation animation)
public void onAnimationRepeat(Animation animation)
public void onAnimationStart(Animation animation)
第一个函数
我用的是setAnimation。。。里面是个int 值。。。弱弱的问一下。。。你这个animation要放在哪用。。。。
追答这个animation代表的是动画对象
TranslateAnimation tanimation = new TranslateAnimation(_downview.getX(), _downview.getX(), 0.0f, _upviewheight);
tanimation.setDuration(500);
tanimation.setFillAfter(true);
tanimation.setAnimationListener(new DownViewListener());
view.startAnimation(sanimation);
你不是这么使用的么?
其实我是用配置文件写进去的。。。并不是代码。。。那我再看看把,感觉用代码也挺好的
本回答被提问者采纳你可以在消失时为 SwiftUI 视图设置动画吗?
【中文标题】你可以在消失时为 SwiftUI 视图设置动画吗?【英文标题】:Can you animate a SwiftUI View on disappear? 【发布时间】:2021-01-21 16:30:15 【问题描述】:我有一个 SwiftUI View
,它有一个运行 onAppear
的自定义动画。我也试图让视图动画onDisappear
,但它立即消失了。
以下示例重现了该问题 - MyText
视图应从左侧滑入并向右滑出。 id
修饰符用于确保每次值更改时都会呈现一个新视图,并且我已经确认 onAppear
和 onDisappear
确实每次都被调用,但动画 onDisappear
从未明显运行。我怎样才能做到这一点?
struct Survey: View
@State private var id = 0
var body: some View
VStack
MyText(text: "\(id)").id(id)
Button("Increment")
self.id += 1
struct MyText: View
@State private var offset: CGFloat = -100
let text: String
var body: some View
return Text(text)
.offset(x: offset)
.onAppear()
withAnimation(.easeInOut(duration: 2))
self.offset = 0
.onDisappear()
withAnimation(.easeInOut(duration: 2))
self.offset = 100
【问题讨论】:
【参考方案1】:可能你想要过渡,比如
struct Survey: View
@State private var id = 0
var body: some View
VStack
MyText(text: $id)
Button("Increment")
self.id += 1
struct MyText: View
@Binding var text: Int
var body: some View
return Text("\(text)").id(text)
.frame(maxWidth: .infinity)
.transition(.slide)
.animation(.easeInOut(duration: 2))
【讨论】:
干得好! :) 但是,关于这个问题,严格来说,这太糟糕了,这在 2021 年的 SwiftUI 中仍然无法原生提供。 也作为后续问题......在子视图中使用绑定有什么好处?无论哪种方式,它似乎都有效。【参考方案2】:恐怕它无法工作,因为一旦隐藏视图就会调用 .onDisappear 修饰符。 但是这里有一个很好的答案: Is there a SwiftUI equivalent for viewWillDisappear(_:) or detect when a view is about to be removed?
【讨论】:
以上是关于popupwindow设置了消失动画,消失动画结束后有出现了。。。要怎么解决。。的主要内容,如果未能解决你的问题,请参考以下文章
XAML 动画:如何使用 BLEND 为用户控件的外观和消失设置动画