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) {
}
}
我正在使用 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) {
}
}