flutter - 如何在颤动中创建带有下一个和上一个按钮的可滚动选项卡
问题描述
我正在尝试使用下一个和上一个按钮创建一个可滚动的选项卡列表,以便当我单击这些按钮时,我应该看到下一个不在视图中的隐藏选项卡。反之亦然。
注意按钮。
到目前为止我有这个,但我无法捕捉视图中的标签并采取相应的行动,有人可以帮忙。
class NewEntryPage extends StatefulWidget {
@override
State<StatefulWidget> createState() => NewEntryPageState();
}
class NewEntryPageState extends State<NewEntryPage>
with SingleTickerProviderStateMixin {
final List<Tab> myTabs = <Tab>[
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
Tab(text: 'bro'),
];
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(vsync: this, length: myTabs.length);
}
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return Column(
children: <Widget>[
Container(
margin: EdgeInsets.symmetric(vertical: 20.0),
padding: const EdgeInsets.all(10.0),
color: Colors.white,
child: Column(
children: <Widget>[
Container(
child: Row(
children: [
IconButton(
icon: Icon(Icons.arrow_back_ios),
onPressed: () {
if (_tabController.index > 0) {
_tabController.animateTo(_tabController.index - 1);
} else {
Scaffold.of(context).showSnackBar(SnackBar(
content: Text("Can't go back"),
));
}
},
),
Expanded(
child: TabBar(
isScrollable: true,
controller: _tabController,
labelStyle: TextStyle(color: Colors.black),
unselectedLabelColor: Colors.black,
labelColor: Colors.blue,
tabs: List.generate(
20,
(index) {
return Tab(
text: "Tab $index",
);
},
),
),
),
IconButton(
icon: Icon(Icons.arrow_forward_ios),
onPressed: () {
if (_tabController.index + 1 < 20) {
_tabController.animateTo(_tabController.index + 1);
} else {
Scaffold.of(context).showSnackBar(SnackBar(
content: Text("Can't move forward"),
));
}
},
),
],
),
),
],
),
),
],
);
}
}
这就是这段代码的作用
解决方案
推荐阅读
- python - 正则表达式将 `ab` 替换为 `a. b`?
- php - 消除图像上标签上的翻转行为
- ios - 按下按钮时,swift ios触发表索引
- oracle-sqldeveloper - 使用 SQL developer 自动化几个 sql 脚本
- javascript - 如何在jQuery的'options:contains'中动态传递变量以获取值
- javascript - 如何每隔 5 秒从其他 .php 链接自动刷新 src 链接
- java - Java Mapper:查找同时购买了 ID 为 21 和 27 的客户的数量
- javascript - Three.js 加载带有纹理的 fbx 文件
- javascript - 如何使 html 页面文本和表格响应(使用 javascript)
- python - 字典中的python函数for循环