Android 中的两部分过渡动画:将一个 textview 向左滑出,并从右侧引入另一个

Posted

技术标签:

【中文标题】Android 中的两部分过渡动画:将一个 textview 向左滑出,并从右侧引入另一个【英文标题】:Two-part transition animation in Android: Slide a textview out to the left, and bring another in from the right 【发布时间】:2011-06-28 18:32:15 【问题描述】:

我正在尝试在 android 活动中设置一个简单的动画,当用户从右向左滑动一个区域时,活动顶部的文本视图将从屏幕向左滑动,然后它会滑动新文本从右边进入。

Before:
---------------
- First Text  -
---------------

Animation Part 1:
---------------
-st Text      -
---------------

Animation Part 2:
---------------
-     Second T-
---------------

After:
---------------
- Second Text -
---------------

当我尝试使用两个单独的动画并更改其间的文本时,第二个动画总是会覆盖第一个动画,而第一个动画永远不会出现。即使在第二个动画中添加 StartOffset 也不行。

任何建议都会有所帮助。谢谢。

【问题讨论】:

嘿,你能展示一些你是如何做到这一点的代码吗?你在使用动画监听器吗?基本上应该可以。 【参考方案1】:

为什么不简化事情,只使用两个文本视图?只需使用辅助文本设置“屏幕外”文本视图,它就会很好地滚动到视图中,而不必担心您现在正在使用的花招:-)

【讨论】:

【参考方案2】:

我发现最简单的方法是使用 AnimationListeners。在初始动画上设置动画侦听器。然后,使用 onAnimationEnd 开始您的第二个动画。 Android 不允许您直接从 onAnimationEnd 开始另一个动画,因此您需要使用处理程序。

这是我常用的基本大纲。

@Override
public void onAnimationEnd(Animation animation) 
    Handler curHandler = new Handler();
    curHandler.post(launchSecondAnimation);


private Runnable launchSecondAnimation = new Runnable() 
    public void run() 
        // Change the text of the textbox and start the second animation
    
;

【讨论】:

以上是关于Android 中的两部分过渡动画:将一个 textview 向左滑出,并从右侧引入另一个的主要内容,如果未能解决你的问题,请参考以下文章

使用Material Design在Android Lollipop中的ListView中的活动过渡动画

android中的默认动画在哪里?

java 将循环显示和不显示过渡动画添加到Android片段

关于设置 android:parentActivityName 后过渡动画的问题

片段中的某些视图未使用过渡动画

Android 中的转场动画及兼容处理