android - 使用 Transitions 框架延迟动画

标签 android android-transitions

我正在尝试使用支持库中的 TransitionManager.beginDelayedTransition() 来延迟转换。

我想使用 AutoTransition 使 LinearLayout 出现/消失。动画按预期完美运行,只是没有延迟。

TransitionManager.beginDelayedTransition(rootViewGroup, new AutoTransition().setStartDelay(1000));
linearLayout.setVisibility(View.VISIBLE);

当然,linearLayout 位于 rootViewGroup 的层次结构中。

最佳答案

我做了一些测试,但不幸的是我也无法让它工作。看起来 setStartDelay 只适用于 ChangeBounds 转换。

请参阅以下示例(当您在第一个 转换上设置startDelay 时,延迟将不起作用):

linearLayout = (LinearLayout) findViewById(R.id.testLinearLayout);
mSceneRoot = (ViewGroup) findViewById(R.id.rootView);
mStaggeredTransition = new TransitionSet();

Transition first = new Fade(Fade.OUT);
Transition second = new ChangeBounds();
Transition third = new Fade(Fade.IN);
second.setStartDelay(1000).addTarget(linearLayout);

mStaggeredTransition.setOrdering(ORDERING_SEQUENTIAL);
mStaggeredTransition.addTransition(first).addTransition(second).addTransition(third);

findViewById(R.id.testbutton).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        linearLayout.setVisibility(View.GONE);
        TransitionManager.beginDelayedTransition(mSceneRoot, mStaggeredTransition);
        linearLayout.setVisibility(View.VISIBLE);
        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) linearLayout.getLayoutParams();
        params.addRule(ALIGN_PARENT_END);
        linearLayout.setLayoutParams(params);
    }
});

所以我建议你使用这样的东西:

mSceneRoot.postDelayed(new Runnable() {
        @Override
        public void run() {
            TransitionManager.beginDelayedTransition(rootViewGroup, new AutoTransition().setStartDelay(1000));
            linearLayout.setVisibility(View.VISIBLE);
        }
    }, 1000);

关于android - 使用 Transitions 框架延迟动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45368420/

相关文章:

java - 使用 socket.io-client.java 库连接到 socket.io 命名空间

android - 在 Android 中 fragment 发生变化时如何使用 Material Design Transition?

java - 当 onBackPressed() 被覆盖时保留过渡动画

android - 另一个 Activity 出现并覆盖屏幕尺寸的一半

android - 使用 openFileOutput 时文件保存在哪里?

android - SQLite DatabaseUtils.queryNumEntries 不适用于真实设备,但适用于模拟器

java.lang.NumberFormatException : Invalid int: “” 异常

android - Google Play 服务库是否已更新?

android - 如何在相同的 View 上同时播放 Fade 和 Slide 过渡?

Android 共享元素转换 : Transforming an ImageView from a circle to a rectangle and back again