在 Android 中,可以使用以下几种方法来保证在 View 的 onSizeChanged 之后执行业务代码:

  1. 在 View 的 onSizeChanged 方法中直接调用业务代码:在 View 的 onSizeChanged 方法内部直接调用需要执行的业务代码,这样可以确保业务代码在 View 的大小改变后立即执行。
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    
    // 执行业务代码
    doBusiness();
}
  1. 使用 post 方法延迟执行:在 View 的 onSizeChanged 方法中使用 post 方法将业务代码添加到 View 的消息队列中,以确保在 onSizeChanged 之后被执行。
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    
    // 使用 post 方法延迟执行业务代码
    post(new Runnable() {
        @Override
        public void run() {
            // 执行业务代码
            doBusiness();
        }
    });
}
  1. 使用 ViewTreeObserver 监听 View 的布局变化:通过 ViewTreeObserver 可以监听 View 的布局变化事件,可以在 View 的 onSizeChanged 方法中添加一个监听器,在监听器中执行业务代码。
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    
    // 添加 ViewTreeObserver 监听器
    getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            // 执行业务代码
            doBusiness();
            
            // 移除监听器
            getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
    });
}

以上是几种常用的方法,根据具体的需求和场景选择适合的方式来保证在 View 的 onSizeChanged 之后执行业务代码。

Android View onSizeChanged 后执行业务代码的几种方法

原文地址: http://www.cveoy.top/t/topic/bk5I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录