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

问题描述

我正在开发一个 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.

标签: javaandroidhuawei-mobile-serviceshuawei-developersharmonyos

解决方案


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

或者您可以在实例化弹出对话框时分配值,例如 -

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

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

popupDialog.setCustomComponent(组件);

这是来自 HarmonyOS 开发者网站的示例

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


推荐阅读