Stack组件的子类,可以堆叠多个组件,并通过index来指定展示的组件索引,其余的会被隐藏。

相关组件

Stack

IndexedStack基本使用

【children】 : 子组件列表 【Lis
【alignment】 : 对齐方式 【AlignmentGeometry】
【index】 : 当前显示组件 【int】
198.gif

  1. import 'package:flutter/material.dart';
  2. class CustomIndexedStack extends StatefulWidget {
  3. @override
  4. _CustomIndexedStackState createState() => _CustomIndexedStackState();
  5. }
  6. class _CustomIndexedStackState extends State<CustomIndexedStack> {
  7. var _index = 1;
  8. @override
  9. Widget build(BuildContext context) {
  10. return Column(
  11. children: <Widget>[
  12. _buildSwitch(),
  13. Container(
  14. width: 200,
  15. height: 100,
  16. color: Colors.grey.withAlpha(33),
  17. child: IndexedStack(
  18. index: _index,
  19. children: <Widget>[
  20. Container(
  21. color: Colors.red,
  22. width: 80,
  23. height: 80,
  24. ),
  25. Positioned(
  26. bottom: 10,
  27. right: 10,
  28. child: Container(
  29. color: Colors.blue,
  30. width: 80,
  31. height: 80,
  32. ),
  33. )
  34. ],
  35. ),
  36. ),
  37. ],
  38. );
  39. }
  40. Widget _buildSwitch() => Switch(
  41. value: _index == 0,
  42. onChanged: (v) => setState(() => _index = v ? 0 : 1),
  43. );
  44. }