是否有一种方法来禁用一个特定的标签在标签栏?所以除非再次启用它,否则无法单击它?任何帮助是感激的,谢谢!
编辑:吸收/忽略指针不工作的代码:
class MyTabbedPage extends StatefulWidget {
const MyTabbedPage({Key key}) : super(key: key);
@override
_MyTabbedPageState createState() => new _MyTabbedPageState();
}
class _MyTabbedPageState extends State<MyTabbedPage>
with SingleTickerProviderStateMixin {
final List<Tab> myTabs = <Widget>[
Tab(text: 'LEFT'),
AbsorbPointer(
child: Tab(text: 'RIGHT')), //not working
];
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = new TabController(vsync: this, length: myTabs.length);
}
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
bottom: new TabBar(
controller: _tabController,
tabs: myTabs,
),
),
body: new TabBarView(
controller: _tabController,
children: myTabs.map((Tab tab) {
return new Center(child: new Text(tab.text));
}).toList(),
),
);
}
}
3条答案
按热度按时间gr8qqesn1#
给您:
添加列表以使哪个选项卡被禁用
向
_tabController
添加侦听器onTap()
方法。如果选定的选项卡被禁用,我们将恢复到以前选定的选项卡。下面是完整的代码:
1sbrub3j2#
它对我起作用
trnvg8h33#