赞
踩
效果图如下:
代码如下:
@Entry @Component struct Index { @State userInput:string = ''; // 用户输入 @State toDoList:string[] = ['吃饭','睡觉','打豆豆']; // 待办事项的数组 build() { Column(){ // 标题 Row(){ Text('TodoList') .fontSize(40) } .margin({top:100}) // 输入框与提交按钮 Row(){ // 输入框 TextInput({text:this.userInput,placeholder:'请输入代办项:'}) .width(220) .height(50) .fontSize(20) .onChange((newValue:string)=>{this.userInput = newValue}) // 提交按钮 Button('提交') .width(80) .height(50) .onClick(()=>{ // 提交至待办事项数组 this.toDoList.push(this.userInput) // 清空用户输入 this.userInput = '' }) } .width('100%') .height('10%') .margin({top:30}) .backgroundColor(Color.White) .justifyContent(FlexAlign.SpaceAround) // 待办事项列表 List(){ if (this.toDoList.length) { // 展示列表 ForEach(this.toDoList,(item:string,index:number)=>{ ListItem(){ Row(){ // 代办事项内容 Text(item) .fontSize(25) // 删除按钮 Button('删除') .width(100) .backgroundColor(Color.Red) .fontColor(Color.White) .onClick(()=>{ this.toDoList.splice(index,1) }) } .width('100%') .justifyContent(FlexAlign.SpaceBetween) } .width('80%') .height(50) .margin({top:10}) },(item:string,index:number)=>item+index.toString()) } else { // 数组为空,展示提示文字 ListItem(){ Text('暂无待办事项') .fontSize(30) } .margin({top:30}) } } .width('100%') .height('50%') .alignListItem(ListItemAlign.Center) .scrollBar(BarState.Auto) } .width('100%') .height('100%') } }
@Entry @Component struct Index { @State userInput:string = ''; // 用户输入 @State toDoList:string[] = []; // 待办事项的数组 build() { Column(){ // 标题 Row(){ Text('TodoList') .fontSize(40) } .margin({top:100}) // 全部完成 Row(){ Row(){ CheckboxGroup({group:'listGroup'}) .margin({right:10}) Text('全部完成') .fontSize(20) } } .width('90%') .margin({top:30}) .justifyContent(FlexAlign.SpaceBetween) // 输入框与提交按钮 Row(){ // 输入框 TextInput({text:this.userInput,placeholder:'请输入代办项:'}) .width(220) .height(50) .fontSize(20) .onChange((newValue:string)=>{this.userInput = newValue}) // 提交按钮 Button('提交') .width(80) .height(50) .onClick(()=>{ // 提交至待办事项数组 this.toDoList.push(this.userInput) // 清空用户输入 this.userInput = '' }) } .width('100%') .height('10%') .margin({top:10}) .backgroundColor(Color.White) .justifyContent(FlexAlign.SpaceAround) // 待办事项列表 List(){ if (this.toDoList.length) { // 展示列表 ForEach(this.toDoList,(item:string,index:number)=>{ ListItem(){ toDo({item,index,callback:this.deleteToDo}) } .width('90%') .height(50) .margin({top:10}) },(item:string,index:number)=>item+index.toString()) } else { // 数组为空,展示提示文字 ListItem(){ Text('暂无待办事项') .fontSize(30) } .margin({top:30}) } } .width('100%') .height('50%') .alignListItem(ListItemAlign.Center) .scrollBar(BarState.Auto) } .width('100%') .height('100%') } // 删除待办事项 deleteToDo = (index:number)=>{ this.toDoList.splice(index,1) } } @Component struct toDo { private item:string private index:number private callback:(index:number)=>void @State isChecked:boolean = false build(){ Row(){ // 勾选框 Checkbox({group:'listGroup'}) .select(this.isChecked) .onChange((value:boolean)=>{ this.isChecked = value }) // 代办事项内容 Text(this.item) .fontSize(25) .decoration({type:this.isChecked?TextDecorationType.LineThrough:TextDecorationType.None}) // 删除按钮 Button('删除') .width(80) .backgroundColor(Color.Red) .fontColor(Color.White) .onClick(()=>{ this.callback(this.index) }) } .width('100%') .justifyContent(FlexAlign.SpaceBetween) } }
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。