Tabbar

Tabbar通常创建为AppBar的AppBar.bottom部分,使用方式如下:

TabController _controller;
  int _selectedIndex = 0;
  final List<Widget> _tabViews = [
    Container(
      child: Text('This is hot page'),
    ),
    Container(
      child: Text('This is tech page'),
    ),
    Container(
      child: Text('This is financial page'),
    ),
  ];
  final List<Tab> _tabs = [
    Tab(
      text: '热门', //标题,和child不能同时存在,只能设置一个
//      child: Text('热门'), //标题,和text不能同时存在
      icon: Icon(Icons.home), //标题对应的图标
    ),
    Tab(
      text: '科技',
//      child: Text('科技'),
      icon: Icon(Icons.list),
    ),
    Tab(
      text: '金融',
//      child: Text('金融'),
      icon: Icon(Icons.more),
    ),
  ];
 
  @override
  void initState() {
    super.initState();
    _controller = TabController(vsync: this, length: _tabs.length);
    _controller.addListener(_handleTabSelection);
  }
 
  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    _controller.dispose();
  }
 
  void _handleTabSelection() {
    setState(() {
      _selectedIndex = _controller.index;
    });
  }
 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar( //应用栏
        title: Text(widget.title),
        bottom: TabBar(
          controller: _controller, //TabBar控制器,通过给controller对象添加addListener方法来监听切换动作
          tabs: _tabs, //标签栏显示项集合
        ),
      ),
      body: _tabViews[_selectedIndex], //页面显示的内容
    );
  }
原文地址:https://www.cnblogs.com/timba1322/p/12487123.html