Android OS 中 onMeasure 在 HarmonyOS 中的替代函数是什么?

What is the alternative function in HarmonyOS for onMeasure in Android OS?

我正在使用 Java SDK 在 HarmonyOS 中编写自定义组件。 为了在 Android 中协商自定义视图的宽度和高度,我们覆盖 onMeasure().

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {}

在HarmonyOS中有什么替代方案?

在 Android - onMeasure() is a protected method available in View class 中,因此可以通过扩展视图 class.

在自定义组件中直接覆盖它

对于 HarmonyOS 中的替代方案 - 您将必须实施 Component.EstimateSizeListener in your custom component and then write down the implementation in overriden function onEstimateSize

所以在 Android 中,当你有这样的代码时 -

public class CustomView extends View {

   public CustomView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
   }

   @Override
   protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
   }
}

Harmony 代码更改为 -

public class CustomComponent implements ComponentContainer.EstimateSizeListener

public CustomComponent(Context context, AttrSet attrSet, String styleName) {
       super(context, attrSet, styleName);
       setEstimateSizeListener(this); //set the listener here
   }

   @Override
   public boolean onEstimateSize(int widthEstimatedConfig, int heightEstimatedConfig) {
   }
}