首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

动画结束后,第一次View.getHeight得到"0“,只是我得到了高度,为什么?

动画结束后,第一次调用View.getHeight()得到"0"的原因可能是因为在动画结束之前,View的布局还没有完成,因此获取到的高度为0。在Android中,布局的测量和绘制是异步进行的,而动画的执行也是异步的。因此,当动画结束时,View的布局可能还没有完成,导致获取到的高度为0。

为了解决这个问题,可以尝试在动画结束后延迟一段时间再获取View的高度,或者在动画结束后添加一个监听器,在监听器中获取View的高度。这样可以确保在布局完成后再获取高度,避免获取到的高度为0。

另外,还可以使用ViewTreeObserver来监听View的布局变化,在布局完成后获取View的高度。具体的实现可以参考以下代码:

代码语言:txt
复制
View view = findViewById(R.id.your_view);
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        // 在布局完成后获取View的高度
        int height = view.getHeight();
        // 在这里进行后续操作
        // ...
        
        // 移除监听器,避免重复调用
        view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
    }
});

以上是一种可能的解决方案,具体的实现方式可以根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券