Flutter-TabBar

const TabBar({
    Key key,
    @required this.tabs,//必须实现的,设置需要展示的tabs,最少需要两个
    this.controller,
    this.isScrollable = false,//是否需要滚动,true为需要
    this.indicatorColor,//选中下划线的颜色
    this.indicatorWeight = 2.0,//选中下划线的高度,值越大高度越高,默认为2
    this.indicatorPadding = EdgeInsets.zero,
    this.indicator,//用于设定选中状态下的展示样式
    this.indicatorSize,//选中下划线的长度,label时跟文字内容长度一样,tab时跟一个Tab的长度一样
    this.labelColor,//设置选中时的字体颜色,tabs里面的字体样式优先级最高
    this.labelStyle,//设置选中时的字体样式,tabs里面的字体样式优先级最高
    this.labelPadding,
    this.unselectedLabelColor,//设置未选中时的字体颜色,tabs里面的字体样式优先级最高
    this.unselectedLabelStyle,//设置未选中时的字体样式,tabs里面的字体样式优先级最高
    this.dragStartBehavior = DragStartBehavior.start,
    this.onTap,//点击事件
  })
import 'package:flutter/material.dart';

class CategoryPage extends StatefulWidget {
  //Flutter2.2.0之后需要注意把Key改为可空类型  {Key? key} 表示Key为可空类型
  CategoryPage({Key? key}) : super(key: key);

  _CategoryPageState createState() => _CategoryPageState();
}

class _CategoryPageState extends State {
  @override
  Widget build(BuildContext context) {

    return DefaultTabController(
      initialIndex: 1,//默认选中第几个
      length: 4,//长度
      child: Scaffold(
          appBar: AppBar(
            backgroundColor: Colors.black26,
            title: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Expanded(
                  child:TabBar(

                    indicatorColor:Colors.blue,
                    labelColor:Colors.blue,
                    unselectedLabelColor: Colors.white,
                    indicatorSize:TabBarIndicatorSize.label ,


                    tabs: [
                      Tab(text: "热销"),
                      Tab(text: "推荐"),
                      Tab(text: "推荐"),
                      Tab(text: "推荐")
                    ],
                  ) ,
                )
              ],
            ),

          ),
          body:TabBarView(
            children: [
              ListView(
                children: [
                  ListTile(
                      title:Text("第一个tab")
                  ),
                  ListTile(
                      title:Text("第一个tab")
                  ),
                  ListTile(
                      title:Text("第一个tab")
                  )
                ],
              ),
              ListView(
                children: [
                  ListTile(
                      title:Text("第二个tab")
                  ),
                  ListTile(
                      title:Text("第二个tab")
                  ),
                  ListTile(
                      title:Text("第二个tab")
                  )
                ],
              ),
              ListView(
                children: [
                  ListTile(
                      title:Text("第3个tab")
                  ),
                  ListTile(
                      title:Text("第3个tab")
                  ),
                  ListTile(
                      title:Text("第一个tab")
                  )
                ],
              ),
              ListView(
                children: [
                  ListTile(
                      title:Text("第4个tab")
                  ),
                  ListTile(
                      title:Text("第二个tab")
                  ),
                  ListTile(
                      title:Text("第二个tab")
                  )
                ],
              )
            ],
          )
      ),
    );
  }
}

你可能感兴趣的:(Flutter-TabBar)