Flutter 如何在页面视图中与ListView一起使用三元视图

Flutter 如何在页面视图中与ListView一起使用三元视图,flutter,Flutter,我有以下代码,用于显示页面视图中的ListView(展开视图位于列中): 我想测试rollRows.length,看看它是否等于1,如果是,我想显示一个文本,说明“没有要显示的作业”,而不是显示ListView 我试过这个: Expanded( child: rollRows == 1 ? [ Center( child: Text( 'No shifts to display', style: Te

我有以下代码,用于显示页面视图中的ListView(展开视图位于列中):

我想测试rollRows.length,看看它是否等于1,如果是,我想显示一个文本,说明“没有要显示的作业”,而不是显示ListView

我试过这个:

Expanded(
  child: rollRows == 1
    ? [
        Center(
          child: Text(
            'No shifts to display',
            style: TextStyle(fontSize: 18, color: kBodyText),
          ),
        ),              
      ]
    : [  
        ListView.builder(
          itemCount: rollRows.length,
          itemBuilder: (BuildContext context, int index) {
            return rosterViewCard(rollRows[index]);
          },
        ),
      ]
)
但我得到了以下错误:

无法将参数类型“List”分配给参数类型“Widget”


我想我把三元条件放错地方了,但不确定在哪里做。谢谢您的建议。

您只需从三元条件中删除
[
]

扩展的
小部件将小部件作为
子属性。但目前,您正在使用
[
&
]
传递一个
列表。删除这些方括号将删除错误

Expanded(
  child: rollRows == 1
    ? 
        Center(
          child: Text(
            'No shifts to display',
            style: TextStyle(fontSize: 18, color: kBodyText),
          ),
        )             
      
    :   
        ListView.builder(
          itemCount: rollRows.length,
          itemBuilder: (BuildContext context, int index) {
            return rosterViewCard(rollRows[index]);
          },
        ),
      
)

您只需从三元条件中删除
[
]

扩展的
小部件将小部件作为
子属性。但目前,您正在使用
[
&
]
传递一个
列表。删除这些方括号将删除错误

Expanded(
  child: rollRows == 1
    ? 
        Center(
          child: Text(
            'No shifts to display',
            style: TextStyle(fontSize: 18, color: kBodyText),
          ),
        )             
      
    :   
        ListView.builder(
          itemCount: rollRows.length,
          itemBuilder: (BuildContext context, int index) {
            return rosterViewCard(rollRows[index]);
          },
        ),
      
)

请试试这个,我想它对你有帮助

rollRows.length == 1
        ? Center(
            child: Text(
              'No shifts to display',
              style: TextStyle(fontSize: 18, color: kBodyText),
            ),
          )
        : Expanded(
            child: ListView.builder(
              itemCount: rollRows.length,
              itemBuilder: (BuildContext context, int index) {
                return rosterViewCard(rollRows[index]);
              },
            ),
          )

请试试这个,我想它对你有帮助

rollRows.length == 1
        ? Center(
            child: Text(
              'No shifts to display',
              style: TextStyle(fontSize: 18, color: kBodyText),
            ),
          )
        : Expanded(
            child: ListView.builder(
              itemCount: rollRows.length,
              itemBuilder: (BuildContext context, int index) {
                return rosterViewCard(rollRows[index]);
              },
            ),
          )