如何在PageView中的ListView中使用三元

时间:2020-11-03 05:21:15

标签: flutter

我有以下代码,它显示在PageView内的ListView(展开的在列内):

Expanded(
  child: ListView.builder(
    itemCount: rollRows.length,
    itemBuilder: (BuildContext context, int index) {
      return rosterViewCard(rollRows[index]);
    },
  ),
)

我想测试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]);
          },
        ),
      ]
)

但是我遇到了以下错误:

不能将参数类型“列表”分配给参数类型“小部件”。

我想我将三元条件放置在错误的位置,但不确定在哪里进行。谢谢你的想法。

2 个答案:

答案 0 :(得分:1)

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

Expanded小部件将小部件作为child属性。但目前,您正在使用List[传递]。删除这些方括号将消除错误。

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]);
          },
        ),
      
)

答案 1 :(得分:1)

请尝试一下,我认为这对您有帮助.. !!

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>