Flutter TabBar 标签

Flutter TabBar 标签

Flutter 实现标签左右滑动切换,可以使用 TabBar 和 TabBarView。TabBar 和 TabBarView 分别表示标签和标签对应的内容页面。

TabBar

TabBar 需要指定一个 TabController 才能使用,TabController 用来控制 TabBar 的切换。

unselectedLabelColor: 未选中的标签的颜色。

labelColor:选中的标签的颜色。

indicatorColor:标签下方指示器线条的颜色。

indicatorSize:标签下方指示器线条的长度。如果是 label,表示和标签内容长度一样,如果是 tab,表示和整个标签长度一样长,即上一个标签的右边到下一个标签左边的长度。

tabs:表示每个标签的 widget。

              Container(
                constraints: BoxConstraints.expand(height: 50),
                child: TabBar(
                    controller: _controller,
                    unselectedLabelColor: Colors.black,
                    labelColor: Colors.blue,
                    indicatorColor: Colors.blue,
                    indicatorSize: TabBarIndicatorSize.label,
                    tabs: [
                      Tab(text: "未结束"),
                      Tab(text: "已结束"),
                      Tab(text: "我的比赛")
                    ]),
              ),

TabBarView

TabBarView 指的是每个标签对应的内容界面,这个设置成 Expanded 可以扩展到整个内容区域。

TabBarView 也需要指定 TabController 和 每个标签下的 widget。

              Expanded(
                child: TabBarView(controller: _controller, children: [
                  ScoreListWidget(_isLoaded, _unFinishedMatches),
                  ScoreListWidget(_isLoaded, _finishedMatches),
                  Center(child: Text("我的比赛"))
                ]),
              )

TabController

TabController 用来控制内容切换,可以将 TabBar 和 TabBarView 嵌套在一个 DefaultTabController 中。也可以使用自定义的 TabController。

    _controller = TabController(length: 3, vsync: ScrollableState());
    _controller.addListener(() => {
          setState(() {
            if (_controller.index == 0) {
              // ...
            }
          })
        });

TabController 通过 length 指定标签的个数。addListener 可以添加标签的滑动监听。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值