gpt4 book ai didi

java - ViewPropertyAnimator - 动画不会第一次出现

转载 作者:太空狗 更新时间:2023-10-29 13:11:50 26 4
gpt4 key购买 nike

我将以下代码用于 AppBarLayout 的滑入/滑出切换。

public void showToolbar(boolean show) {
if (appBar == null) {
Log.e(TAG, "showToolbar: Toolbar is null");
return;
}
boolean toolbarShown = Utils.isViewVisible(appBar);
Log.d(TAG, "showToolbar: shown:" +shown);
boolean changed = (show != toolbarShown);
if (changed) {
if (show) {
Log.d(TAG, "showToolbar: showing");
appBar.setVisibility(View.VISIBLE);
appBar.animate()
.translationY(0)
.setInterpolator(new DecelerateInterpolator())
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
appBar.setVisibility(View.VISIBLE);
}

@Override
public void onAnimationEnd(Animator animator) { }

@Override
public void onAnimationCancel(Animator animator) { }

@Override
public void onAnimationRepeat(Animator animator) { }
})
.start();
} else {
Log.d(TAG, "showToolbar: hiding");
appBar.animate()
.translationY(-toolbar.getBottom())
.setInterpolator(new DecelerateInterpolator())
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) { }

@Override
public void onAnimationEnd(Animator animator) {
appBar.setVisibility(View.INVISIBLE);
}

@Override
public void onAnimationCancel(Animator animator) { }

@Override
public void onAnimationRepeat(Animator animator) { }
})
.start();
}
} else {
Log.d(TAG, "showToolbar: no change");
}
}

除第一次调用 showToolbar(true) 以显示工具栏外,动画效果完美。该 View 第一次显示时没有动画。我搜索了该网站并发现了类似的问题,但解决方案似乎对我不起作用。

可能值得注意的是,只有当我们希望首先隐藏 appBar 时才会发生这种情况。我的猜测是,也许是为了动画

更新 1:

public static boolean isViewVisible(View view) {
if (View.VISIBLE == view.getVisibility()) return true;
else return false;
}

更新 2

我已经删除了 isViewWithinScreenBounds() 方法,因为实际上并不需要该检查。

最佳答案

请务必为 visibilitytranslationY 设置初始值。

如果您希望您的工具栏最初隐藏并显示第一个动画,请务必设置 android:visibility="invisible"NOT “消失”,以及像 -56dp 这样的否定 android:translationY

关于java - ViewPropertyAnimator - 动画不会第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39662361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com