【关键字】
Popup / 边框线
【问题描述】
点击一个按钮,弹出Popup。Popup是否可以添加边框线,Android Popup有边框的截图如下所示。
如果目前没有添加popup border的API,是否考虑增加添加popup border的API?
【解决方案】
建议使用menu组件实现。
示例代码如下:
@Entry
@Component
struct Index11 {
@State select: boolean = true
private iconStr: ResourceStr = $r("app.media.startIcon")
private iconStr2: ResourceStr = $r("app.media.startIcon")
@Builder
SubMenu() {
Menu() {
MenuItem({ content: "复制", labelInfo: "Ctrl+C" })
MenuItem({ content: "粘贴", labelInfo: "Ctrl+V" })
}
}
@Builder
MyMenu(){
Menu() {
MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })
.enabled(false)
MenuItem({
startIcon: this.iconStr,
content: "菜单选项",
endIcon: $r("app.media.startIcon"),
builder: ():void=>this.SubMenu()
})
MenuItemGroup({ header: '小标题' }) {
MenuItem({ content: "菜单选项" })
.selectIcon(true)
.selected(this.select)
.onChange((selected) => {
console.info("menuItem select" + selected);
this.iconStr2 = $r("app.media.icon");
})
MenuItem({
startIcon: $r("app.media.startIcon"),
content: "菜单选项",
endIcon: $r("app.media.startIcon"),
builder: ():void=>this.SubMenu()
})
}
MenuItem({
startIcon: this.iconStr2,
content: "菜单选项",
endIcon: $r("app.media.startIcon")
})
}
.borderWidth(1)
}
build() {
Row() {
Column() {
Text('click to show menu')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.bindMenu(this.MyMenu)
.width('100%')
}
.height('100%')
}
}