Flutter 中的 IndexedStack 小部件:全面指南
在Flutter中,IndexedStack
是一个小部件,它根据一个索引来显示一系列子小部件中的一个。当索引改变时,IndexedStack
会更新其显示的小部件。
以下是一个简单的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 _updateIndex(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: _updateIndex,
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
,它允许用户在页面之间切换。每次点击底部导航栏的一个项时,_updateIndex
方法就会被调用,并更新IndexedStack
的索引,从而显示对应的页面。
评论已关闭