我最近切换到一个活动(由于使用了砂浆和流动),然后切换了全屏视图,而不是使用以下代码开始新的活动。

    setAnimation(direction, oldChild, newChild);

    // Out with the old, in with the new.
    if (oldChild != null) container.removeView(oldChild);
    container.addView(newChild);
}

protected void setAnimation(Flow.Direction direction, View oldChild, View newChild) {
    if (oldChild == null) return;

    int out = direction == Flow.Direction.FORWARD ? R.anim.slide_out_to_left : R.anim.slide_out_to_right;
    int in = direction == Flow.Direction.FORWARD ? R.anim.slide_in_from_right : R.anim.slide_in_from_left;

    oldChild.setAnimation(loadAnimation(context, out));
    newChild.setAnimation(loadAnimation(context, in));
}

这正是我过去在活动之间进行过渡的方式

    activity.startActivity();
    activity.overridePendingTransition(R.anim.slide_in_from_right, R.anim.nudge_out_to_left);

对我来说,视图和活动过渡都应该呈现相同的效果,但是我看到的是,活动过渡中还有一些额外的事情要做。 也有某种淡出。

有人知道我如何才能将视图转换为与2个活动转换相同的视图吗? 我很乐意完全采用一种方法,不需要进行一项以上的活动,但又不想失去活动过渡的平稳性

#1楼 票数:0

您可以将代码分为两个活动,而不是一个活动。 如果您仅在活动中共享一些静态视图(文本,图像等),而在第二个活动中执行更多操作,则这将非常有用。 如果您使用片段而不是一个视图或两个活动,有时这是一个很好的解决方案。

请阅读有关片段的文档,尤其是共享元素的片段过渡。 这很容易处理并保持代码干净。

#2楼 票数:0

您在代码示例中使用了两种不同的out标注。 一次nudge_out,另一次slide_out。 不知道是不是偶然 也许活动会在全球范围内淡出?!

  ask by FriendlyMikhail translate from so

未解决问题?本站智能推荐:

1回复

为活动之间的视图过渡设置动画的简便方法

在活动之间进行转换时,是否有一种简单且通用的方式来制作视图动画? 某些功能仅需要源视图和目标视图,而无需编写任何特定于每个过渡的代码。
1回复

聆听活动之间的动画/过渡

我的应用程序中有两项活动。 应该从屏幕底部的动画启动第二个活动。 我想让它看起来好像只有页面的内容发生了变化,而操作栏仍停留在屏幕顶部。 为此,我需要收听动画,以便在动画完成后立即显示第二个活动的操作栏。 我这样开始第二个活动: 我的问题是:如何收听动画?如果不可能,在两次活
1回复

活动之间的后共享元素过渡

我使用原生Android Transition API为活动之间的过渡设置动画。 这是我用来启动活动的来源: 当我点击硬件后退按钮时,它将返回带有预期的反向过渡动画的先前活动,但是当我点击工具栏中的“向上”按钮时,它将返回到具有默认动画的先前活动:
1回复

无线性活动过渡动画

我想实现一个非线性活动过渡动画。 我当前的动漫xml文件 我想要做的是动画以更快的速度开始慢速结束。
1回复

为什么场景过渡期间视图会被剪切?

我有一个场景过渡,用于将一种布局动画化为另一种布局。 进入动画效果很好,而退出动画看起来好像视图被目标布局的边界所裁剪。 我该如何解决? FAB过渡GIF
2回复

过渡:过渡完成后如何更改父视图的大小?

在我的应用程序中,我具有线性的视图布局。 这些视图的大小可能会因其自身布局的更改而改变。 特别地,第一视图( sceneRoot )由可隐藏部分( view1 )和始终可见的部分( view2 )组成。 我想通过两个步骤来动画化view1的出现和消失: 如果view1 消失 ,则
1回复

Android活动过渡动画仅适用于被叫活动

我正在尝试创建一个Android活动过渡,其中活动a调用活动b,我需要活动b在调用时从屏幕的右侧滑入并在销毁时从屏幕的右侧滑出,在两次过渡期间都需要活动a以保持原位,并且不进行任何动画处理。 我已经搜索了此动画,并且发现所有动画都使活动具有动画效果,并且我正努力避免这种情况,任何帮助都将大
1回复

淡入和淡出过渡在Android活动中不起作用

我有一个使用此过渡的项目,但是现在当我再次将其应用于另一个应用程序时,它拒绝进行任何过渡。 这是我从MainActivity到AnotherActivity的代码 fade_in.xml fade_out.xml 这是我的MainActivity.java 我