在颤动中创建一个带有分隔符的开关列表图块

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 数据框?

如何从包含逗号分隔条目的变量中创建(不同的)值列表?

颤动 listView.Builder 隐藏最后一个列表项的分隔符

pyspark 从逗号分隔值列表中创建多行

你将如何从字符串列表中创建一个逗号分隔的字符串?