Dan*_*ali 4 android android-transitions
TransitionManager.beginDelayedTransition()我正在尝试使用支持库来延迟转换。
我想用它AutoTransition来实现LinearLayout出现/消失。动画效果与预期完全一致,只是没有延迟。
TransitionManager.beginDelayedTransition(rootViewGroup, new AutoTransition().setStartDelay(1000));
linearLayout.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
当然,它linearLayout是在层次结构中的。rootViewGroup
小智 5
我做了一些测试,但不幸的是我也无法使其工作。它看起来是过渡setStartDelay中唯一的作品ChangeBounds。
请参阅以下示例(当您在过渡startDelay上设置 时first,延迟将不起作用):
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);
}
});
Run Code Online (Sandbox Code Playgroud)
所以我建议你使用这样的东西:
mSceneRoot.postDelayed(new Runnable() {
@Override
public void run() {
TransitionManager.beginDelayedTransition(rootViewGroup, new AutoTransition().setStartDelay(1000));
linearLayout.setVisibility(View.VISIBLE);
}
}, 1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2911 次 |
| 最近记录: |