如何解决滑动时 TabBarView 和 TabBar 的问题
这个问题在下面的 gif 中进行了说明,向右滑动效果很好,但是在底部 TabBar 响应中向左滑动图标真的很奇怪。它返回 2 步,然后才返回正常所需的索引。例如,我在带有人物图标的页面上,向左滑动它会转到购物卡图标,然后才转到最喜欢的图标。但它只适用于底部的图标,页面动画完美。任何帮助将不胜感激。
import 'package:flutter/material.dart';
import '../colors.dart';
class MyTabPage extends StatefulWidget {
@override
_MyTabPageState createState() => _MyTabPageState();
}
class _MyTabPageState extends State<MyTabPage> with TickerProviderStateMixin {
int _selectedIndex = 0;
TabController _tabController;
void onTap(int index) {
setState(() {
_selectedIndex = index;
});
}
@override
void initState() {
_tabController = new TabController(
length: 4,vsync: this,);
_tabController.addListener(() {
setState(() {
_selectedIndex = _tabController.index;
});
});
super.initState();
}
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: Container(
height: 70,color: blue,child: Center(
child: TabBar(
tabs: List<Widget>.generate(
4,(index) => Container(
margin: EdgeInsets.symmetric(horizontal: 8),child: Icon(
icons[index],color: _selectedIndex == index ? Colors.black : white,),unselectedLabelColor: const Color(0xffacb3bf),indicatorColor: Colors.transparent,indicatorSize: TabBarIndicatorSize.tab,indicatorWeight: 1.0,isScrollable: true,controller: _tabController,onTap: onTap,labelPadding: EdgeInsets.all(0),body: Container(
child: TabBarView(
controller: _tabController,children: List<Widget>.generate(
4,(index) => Container(
child: Center(
child: Text("$index"),);
}
}
List<IconData> icons = [
Icons.home,Icons.shopping_cart,Icons.favorite,Icons.person,];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。