假设我的PageView中有四个 child ,

PageView(
  children: <Widget>[
    Page1(),
    Page2(),
    Page3(), // how to skip this when a condition is false
    Page4(),
  ],
)

我想在Page3值为bool时显示true,我该怎么做,我想放一个null,但我不允许这样做。

最佳答案

一种方法是-使用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
          }()),
        ),

关于dart - flutter 跳过ListView或PageView中的子级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54842549/

10-10 17:10