【问题标题】:Delay animation with Transitions framework使用 Transitions 框架延迟动画
【发布时间】:2017-07-28 08:22:08
【问题描述】:

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

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

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

linearLayout 当然是在rootViewGroup 的层次结构中。

【问题讨论】:

标签: android android-transitions


【解决方案1】:

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

参见以下示例(当您在first 转换上设置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);

【讨论】:

  • 我真的不想使用Handler,因为我必须处理潜在的内存泄漏......但看起来这是要走的路。谢谢乔迪
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 2022-01-02
  • 1970-01-01
  • 2012-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多