目前Select不能自定义布局和样式,使用bindMenu来自定义菜单内容可以达到类似Select的效果,并且可以灵活控制选项样式自定义,示例demo如下:class menu { value1: string = '' value2: string = '' } @Entry @Component struct Index { @State menuList: menu[] = [ {value1: 'aa-1',value2: 'aa-2'}, {value1: 'bb-1',value2: 'bb-2'}, {value1: 'cc-1',value2: 'cc-2'}, {value1: 'dd-1',value2: 'dd-2'}, {value1: 'aa-1',value2: 'aa-2'}, {value1: 'bb-1',value2: 'bb-2'}, {value1: 'cc-1',value2: 'cc-2'}, {value1: 'dd-1',value2: 'dd-2'}, {value1: 'aa-1',value2: 'aa-2'}, {value1: 'bb-1',value2: 'bb-2'}, {value1: 'cc-1',value2: 'cc-2'}, {value1: 'dd-1',value2: 'dd-2'} ] @State currentMenu: string = "1.0X" scroller: Scroller = new Scroller() @Builder MyMenu() { Column(){ Scroll(this.scroller){ Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { ForEach(this.menuList, (item: menu) => { Row(){ Text(item.value1).height(32) Text(item.value2).height(32) } .onClick(() => { this.currentMenu = item.value1 }) }) } } .scrollable(ScrollDirection.Vertical) // 滚动方向纵向 .scrollBar(BarState.On) // 滚动条常驻显示 .scrollBarColor(Color.Gray) // 滚动条颜色 .scrollBarWidth(10) // 滚动条宽度 .friction(0.6) .edgeEffect(EdgeEffect.None) .width(100) .backgroundColor(0x80ffffff) } .constraintSize({ maxHeight: '30%' }) } build() { Column() { Text(this.currentMenu) .fontSize(32) .bindMenu(this.MyMenu()) .backgroundColor(Color.Gray) .width(100) .textAlign(TextAlign.Center) } .width('100%') .height("100%") } }
目前Select不能自定义布局和样式,使用bindMenu来自定义菜单内容可以达到类似Select的效果,并且可以灵活控制选项样式自定义,示例demo如下: