为什么在调用 .show() 时使用构造函数中传递的自定义组件创建弹出对话框显示空白对话框?

Why creating Popup dialog with custom component passed in constructor showing blank Dialog when .show() is called?

我正在开发一个 Harmony 应用程序,我想在其中创建一个带有自定义组件的弹出对话框。
我试过这个

Component customComponent = LayoutScatter.getInstance(context)
                .parse(ResourceTable.Layout_custom_dialog, null, false);
// I have already made custom component
PopupDialog popupDialog = new PopupDialog(getContext, customComponent);
popupDialog.show();

在 运行 之后,我只看到一个白色背景框,自定义组件不可见。
为什么 new PopupDialog(getContext, customComponent); 没有设置 customComponent.

请检查自定义组件的高度和宽度是否设置正确。

或者你可以在实例化弹出对话框时赋值,比如 -

PopupDialog popupDialog = new PopupDialog(getContext(), associated, width, height);

此外,您需要将自定义组件设置为在显示前弹出对话框 -

popupDialog.setCustomComponent(组件);

以下是HarmonyOS开发者网站的示例

https://developer.harmonyos.com/en/docs/documentation/doc-guides/faq-java-developing-0000001073311795

new PopupDialog(getContext, customComponent);

上述构造函数调用只会获取构造函数中传入的customComponent的高度和宽度。

自定义弹出对话框的内容,需要使用以下API

public PopupDialog setCustomComponent​(Component customComponent)

您可以参考此 documentation 了解更多信息