Flutter 抽屉布局:如何在Flatter中创建此自定义布局
我有一个抽屉,我想实现布局张贴在下面的屏幕截图Flutter 抽屉布局:如何在Flatter中创建此自定义布局,flutter,Flutter,我有一个抽屉,我想实现布局张贴在下面的屏幕截图 所有任务,今天,完整和不完整的和编号都是固定的。用户无法添加这些。我已经加了创建列表和设置 MyList由用户添加,用户可以添加更多内容,如食物、运动、阅读等 分隔符也可以在1行或3行之后显示为组 我应该使用列表视图吗?。有什么建议吗 您有两种方法可以做到这一点,第一种方法使用ListView,如下所示: drawer: new Drawer( child: new Column( children: <Widg
所有任务,今天,完整和不完整的
和编号都是固定的。用户无法添加这些。我已经加了<代码>创建列表和设置
MyList
由用户添加,用户可以添加更多内容,如食物、运动、阅读等
分隔符
也可以在1行或3行之后显示为组
我应该使用列表视图吗?。有什么建议吗
您有两种方法可以做到这一点,第一种方法使用ListView,如下所示:
drawer: new Drawer(
child: new Column(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: const Text('Test Widget'),
accountEmail: const Text('test.widget@example.com'),
margin: EdgeInsets.zero,
onDetailsPressed: () {},
),
new Expanded(
child: new ListView(
padding: const EdgeInsets.only(top: 8.0),
children: <Widget>[
new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: _drawerContents.map((String id) {
return new ListTile(
leading: new CircleAvatar(child: new Text(id)),
title: new Text('Drawer item $id'),
);
}).toList(),
),
// The drawer's "details" view.
new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
new ListTile(
leading: const Icon(Icons.add),
title: const Text('Add account'),
),
new ListTile(
leading: const Icon(Icons.settings),
title: const Text('Manage accounts'),
),
],
),
],
),
),
],
),
)
drawer: new Drawer(
child: new Column(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: const Text('Test Test'),
accountEmail: const Text('test@example.com'),
margin: EdgeInsets.zero,
onDetailsPressed: () {},
),
new Expanded(
child: new ListView.builder(
itemBuilder: (BuildContext context, int index) =>
new EntryItem(data[index]),
itemCount: data.length,
),
),
],
),
),
有两种方法可以做到这一点,第一种方法使用ListView,如下所示:
drawer: new Drawer(
child: new Column(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: const Text('Test Widget'),
accountEmail: const Text('test.widget@example.com'),
margin: EdgeInsets.zero,
onDetailsPressed: () {},
),
new Expanded(
child: new ListView(
padding: const EdgeInsets.only(top: 8.0),
children: <Widget>[
new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: _drawerContents.map((String id) {
return new ListTile(
leading: new CircleAvatar(child: new Text(id)),
title: new Text('Drawer item $id'),
);
}).toList(),
),
// The drawer's "details" view.
new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
new ListTile(
leading: const Icon(Icons.add),
title: const Text('Add account'),
),
new ListTile(
leading: const Icon(Icons.settings),
title: const Text('Manage accounts'),
),
],
),
],
),
),
],
),
)
drawer: new Drawer(
child: new Column(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: const Text('Test Test'),
accountEmail: const Text('test@example.com'),
margin: EdgeInsets.zero,
onDetailsPressed: () {},
),
new Expanded(
child: new ListView.builder(
itemBuilder: (BuildContext context, int index) =>
new EntryItem(data[index]),
itemCount: data.length,
),
),
],
),
),
谢谢你的详细答复。让我测试一下,然后再给你回复。EntryItem(数据[索引])是什么。你能发布示例代码吗?我在答案中添加了一个EntryItem示例。很抱歉再次询问。您可以粘贴带有虚拟数据的条目类结构来填充作为示例。我会接受答案。谢谢你的帮助。谢谢你的详细回复。让我测试一下,然后再给你回复。EntryItem(数据[索引])是什么。你能发布示例代码吗?我在答案中添加了一个EntryItem示例。很抱歉再次询问。您可以粘贴带有虚拟数据的条目类结构来填充作为示例。我会接受答案。谢谢你的帮助。