在颤动中创建一个带有分隔符的开关列表图块
Posted
技术标签:
【中文标题】在颤动中创建一个带有分隔符的开关列表图块【英文标题】:Create a switch list tile with separators in flutter 【发布时间】:2020-07-18 15:05:18 【问题描述】:我正在尝试在颤振中创建一个开关图块列表,其中在图块之间有分隔符。
我尝试过使用ListTile.divideTiles
:
ListView(
children: ListTile.divideTiles(
context: context,
tiles: [
SwitchListTile(
secondary: Icon(Icons.signal_cellular_4_bar),
title: Text(
"First Tile",
),
value: var1,
onChanged: (bool value)
setState(
()
var1= value;
,
);
,
),
SwitchListTile(
secondary: Icon(Icons.swap_vert),
title: Text(
"Second Tile",
),
value: var2,
onChanged: (bool value)
setState(
()
var2= value;
,
);
,
),
],
),
),
但是当我尝试运行代码时,出现以下错误:
"type '_SyncIterable<Widget>' is not a subtype of type 'List<Widget>'"
我应该为谁创建带有分隔符的开关磁贴列表?
【问题讨论】:
【参考方案1】:请试试这个。
将.toList()
添加到ListTile.divideTiles
的末尾
ListTile.divideTiles(
// all your code
// all your code
// all your code
).toList()
【讨论】:
这已经解决了问题,但现在第二个图块没有出现 嗯,我想这可能是不同的东西。查看或重写您的内部代码。【参考方案2】:你为什么不试试ListView.separated
?
int _selectedIndex = 0;
return ListView.separated(
//Here's your separator
separatorBuilder: (BuildContext context, int index)
return SizedBox(
height: 10, //Whatever spacing you want.
);
,
physics: BouncingScrollPhysics(),
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: 2, //How many tiles you want
padding: EdgeInsets.all(10),
itemBuilder: (BuildContext context, int index)
return ClipRRect( //round up the edges for nicer look
borderRadius: BorderRadius.all(Radius.circular(5)),
//And here's your tile
child: SwitchListTile(
tileColor: Colors.grey[900],
selectedTileColor: Colors.black,
selected: index == _selectedIndex,
value: ... ,
onChanged: (v)
...
,
title: Text('Tile #' + index.toString()),
subtitle: Text('-'),
),
);
,
);
【讨论】:
以上是关于在颤动中创建一个带有分隔符的开关列表图块的主要内容,如果未能解决你的问题,请参考以下文章
如何从带有额外分隔符的 csv 在 python 中创建 pandas 数据框?