IndexedStack是Flutter中的一个布局组件,用于在多个子组件之间切换,并且只显现当时子组件。下面是关于运用IndexedStack的详细说明:
1.导入IndexedStack:
import 'package:flutter/material.dart';
2.创立IndexedStack:
IndexedStack(
index: 0, // 初始显现子组件的下标
children: [
// 子组件列表
Container(color: Colors.blue),
Container(color: Colors.green),
Container(color: Colors.red),
],
),
3.属性解析:
- index:代表当时显现的子组件的下标。比方上面设置为0,就是显现第1个子组件。如果改成1,则是显现第2个子组件。
- children:是一个列表,其间包括IndexedStack要显现的一切子组件。
4.完成原理
IndexedStack的完成原理其实很简单,只是在显现某个子组件时,将其他的子组件隐藏了。要完成这个功能,Flutter内部是经过一个Stack和多个Offstage完成的。
- Stack:是一个无限制巨细的布局模型,它的子组件能够叠放在一同。IndexedStack实际上就是一个Stack。
- Offstage:用于将一个组件隐藏,能够经过将其offstage属性设置为true来完成。
IndexedStack会将除了当时显现的子组件以外的一切子组件的offstage属性都设置为true,这样就完成了不显现这些子组件的目的。