using Unity.UIWidgets.engine;
using Unity.UIWidgets.widgets;
using Unity.UIWidgets.painting;
using System.Collections.Generic;
using System.Linq;
using System;
public class TodoListApp : UIWidgetsPanel
{
protected override Widget createWidget()
{
return new TodoList();
}
class TodoList : StatefulWidget
{
public override State createState()
{
return new TodoListState();
}
}
class TodoListState : State<TodoList>
{
private List<string> itemList = new List<string>()
{
"1",
"2",
"3"
};
public override Widget build(BuildContext context)
{
return
BuilderManager
.ListView()
.SetChild
(
BuilderManager
.Container()
.SetChild
(
BuilderManager
.Text()
.SetData("+")
.SetFontSize(50)
.EndText()
)
.SetAlignment(Alignment.bottomRight)
.EndContainer()
.OnTap
(
() =>
{
this.setState
(
() =>
{
itemList.Add("new");
}
);
}
)
)
.SetChildren(TodoListViews)
.EndListView();
}
private Widget[] TodoListViews
{
get
{
return itemList.Select
(
data => new ListItem
(
data,
() =>
{
this.setState
(
() =>
{
itemList.Remove(data);
}
);
}
)
).ToArray();
}
}
}
public class ListItem : StatelessWidget
{
private string data;
private Action action;
public ListItem(string _data, Action _action)
{
data = _data;
action = _action;
}
public override Widget build(BuildContext context)
{
return BuilderManager
.Container()
.SetChild
(
BuilderManager
.Text()
.SetData(data)
.SetFontSize(30)
.EndText()
)
.EndContainer()
.OnTap
(
() =>
{
action();
}
);
}
}
}
UIWidgets(三)——使用UIWidgets实现一个添加删除列表的小功能
最新推荐文章于 2024-06-10 09:58:37 发布