假设我PageView
中有四个孩子,
PageView(
children: <Widget>[
Page1(),
Page2(),
Page3(), // how to skip this when a condition is false
Page4(),
],
)
当Page3
的值为bool
时,我想显示true
,我该怎么做,我想放一个null
,但我不允许这样做那。
答案 0 :(得分:1)
一种方法是使用-使用sync*
函数。
Page2
为true,则会显示 condition
。
bool condition = true;
PageView(
children: List.unmodifiable(() sync* {
yield Center(child: Text('Page1')); //Page 1
if (condition) {
yield Center(child: Text('Page2')); // Page2(conditional)
}
// yield* children;
yield Center(child: Text('Page3')); //Page3
}()),
),
答案 1 :(得分:0)
似乎这样是使事情发生的更好方法。
List<Widget> list = [];
if (condition) {
list = [
Page1(),
Page2(),
Page3(),
Page4(),
];
} else {
list = [
Page1(),
Page2(),
Page4(),
];
}
return PageView(children: list);
答案 2 :(得分:0)
从Dart 2.2.2开始,您可以使用常规random.seed(2)
min_rescale = -0.001
max_rescale = 0.001
close2 = [min_rescale + random.random() * (max_rescale - min_rescale) for x in range(100)]
sns.distplot(close2, hist=True, kde=True, bins=5, color = 'darkblue',
hist_kws={'edgecolor':'black'}, kde_kws={'linewidth': 4})
条件。
if