gpt4 book ai didi

android - Api 21 循环显示动画不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:59 26 4
gpt4 key购买 nike

我无法使循环显示动画起作用。我想我检查了最明显的事情:它开始,宽度和高度 > 0 并且它是可见的,没有异常..

我从互联网加载一些数据并将其显示在 View 中(fab)动画应仅在下载完成后播放。

TmdbHelper helper = new TmdbHelper();
helper.getMovieById(id, "en", new TmdbHelper.ResultListener() {
@Override
public void onResultReceived(JSONObject result) {

// called when finished downloading

try {
String rating = result.getString("vote_average");

AnimationHelper.circularReveal(fab, 500, 0);

fab.setText(rating);

} catch (JSONException e) {
e.printStackTrace();
}

}
});

动画助手:

    public static void circularReveal(final View view, final long duration, long startDelay) {

// get the center for the clipping circle
int cx = (view.getLeft() + view.getRight()) / 2;
int cy = (view.getTop() + view.getBottom()) / 2;

// get the final radius for the clipping circle
int finalRadius = Math.max(view.getWidth(), view.getHeight());

// create the animator for this view (the start radius is zero)
Animator anim =
ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);

anim.setDuration(duration);
anim.setStartDelay(startDelay);

anim.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {

view.setVisibility(View.VISIBLE);
}

@Override
public void onAnimationEnd(Animator animation) {
}

@Override
public void onAnimationCancel(Animator animation) {
}

@Override
public void onAnimationRepeat(Animator animation) {}
});

// make the view visible and start the animation

anim.start();
}

我在其他部分使用圆形显示动画来确保 View 已附加并且有效:

headerContainer.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override
public void onGlobalLayout() {
headerContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
AnimationHelper.circularReveal(headerContainer, 500, 200);
}
});

最佳答案

也许您应该在 onResultRecieved() 中删除这一行:

fab.setVisibility(View.VISIBLE);

我的假设是您的循环显示方法运行良好。这是因为您在动画开始之前就已经使 FAB 可见,所以您看不到它的运行情况。

此外,您所显示的那些有效的行没有在其中的任何地方调用 fab.setVisibility(View.VISIBLE)

关于android - Api 21 循环显示动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27041780/

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