我有一个“合同”模型,参数之一是合同是否有效。我在contractModel文件中使用布尔true / false来实现此条件。 现在,我正在渲染包含所有合同的ListView.Builder,但是我已经在屏幕顶部创建了一个过滤器,以选择有效/无效的合同。我要实现的是在“活动” ListView.Builder中呈现活动合同,在“非活动” ListView.Builder中呈现非活动合同。
这是ListView.Builder的代码:
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Categories(),
),
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: ListView.builder(
itemCount: contracts.length,
itemBuilder: (context, index) => ContractCard(
contract: contracts[index],
press: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailsScreen(
contract: contracts[index],
),
),
),
),
),
),
),
],
);
}
}
感谢您的帮助。
答案 0 :(得分:0)
参考包(flutter package),作者的解释(medium post)。这是通常有条件地渲染小部件的方式
return Column(
children: <Widget>[
someCondition == true ?
Text('The condition is true!'):
Text('The condition is false!'),
],
);
使用上述软件包,尽管您可以这样做
return Column(
children: <Widget>[
Conditional.single(
context: context,
conditionBuilder: (BuildContext context) => someCondition == true,
widgetBuilder: (BuildContext context) => Text('The condition is true!'),
fallbackBuilder: (BuildContext context) => Text('The condition is false!'),
),
],
);