答案 0 :(得分:10)
如果您不希望标签展开以便按照默认情况下的方式水平填充屏幕,则为TabBar
属性isScrollable: true
提供。
您可以使用Container
中包含的PreferredSize
来确定TabBar
的大小。 (PreferredSize
只有在您希望它位于bottom
的{{1}}位置时才有必要。)这会使指标显得更窄,因为AppBar
没有填满屏幕。但是,指示器具有硬编码高度。如果您不喜欢它,则必须导入自己的tabs.dart副本并自定义该文件中的常量。
请注意,您也可以使用TabBar
来设置单个Container
的高度,但这似乎与您尝试的不同。
Tab
答案 1 :(得分:3)
您可以在TabBar上使用indicatorSize: TabBarIndicatorSize.label
来使指示器的大小与标签相同。
或者您可以直接设置indicator
,这是您可以自定义的Decoration
:
AppBar(
bottom: TabBar(
indicator: UnderlineTabIndicator(
borderSide: BorderSide(width: 5.0),
insets: EdgeInsets.symmetric(horizontal:16.0)
),
tabs: [
Tab(text: 'tab 1'),
Tab(text: 'tab 2'),
Tab(text: 'tab 3'),
],
),
);
有关更多自定义选项,请选中此post
答案 2 :(得分:1)
与此答案https://stackoverflow.com/a/44273493/5938089相同,最好是使用容器,但我只会使用一个。
要进行更改,我将使用底部的栏
bottomNavigationBar: new Material(
color: Colors.teal,
child: new Container(
height: 60.0,
child: new TabBar(
controller: controller,
tabs: <Widget>[
new Tab(icon: new Icon(Icons.access_alarm)),
new Tab(icon: new Icon(Icons.account_balance)),
]
),
)
),
答案 3 :(得分:0)
您可以调整标签之间的间距-> labelPadding:EdgeInsets.symmetric(水平:5),
答案 4 :(得分:0)
查看 Tab Indicator Styler 包以获得更高级的样式。
答案 5 :(得分:-1)
您可以使用属性TabBar(indicatorWeight:detail Height)
。