Flutter 中 IndexedStack 的使用详解 _ Flutter Widgets
warning:
这篇文章距离上次修改已过187天,其中的内容可能已经有所变动。
在Flutter中,IndexedStack
是一个堆叠放置多个子widget的widget,但一次只显示一个子widget。可以通过index
属性来控制当前显示哪一个子widget。
以下是一个简单的IndexedStack
使用示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int _index = 0;
void _changeIndex(int index) {
setState(() {
_index = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: IndexedStack(
index: _index,
children: <Widget>[
Center(child: Text('Page 1')),
Center(child: Text('Page 2')),
Center(child: Text('Page 3')),
],
),
bottomNavigationBar: BottomNavigationBar(
currentIndex: _index,
onTap: _changeIndex,
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.home), title: Text('Home')),
BottomNavigationBarItem(icon: Icon(Icons.business), title: Text('Business')),
BottomNavigationBarItem(icon: Icon(Icons.school), title: Text('School')),
],
),
);
}
}
在这个例子中,我们有一个IndexedStack
,它包含三个页面。底部的BottomNavigationBar
控制了IndexedStack
中当前显示哪个页面。点击底部导航栏的项会更新_index
状态,IndexedStack
会相应地更新显示的页面。
评论已关闭