The*_*ang 5 dart material-design flutter
嗨,我们可以在Flutter中自定义标签栏宽度吗?我的标签栏宽度固定在此处,因此当我在标签栏中长文本时,它不会完全显示,我想根据内容使标签栏宽度灵活,因此当我的文本只是短文本时,标签栏宽度会很小,并且当文本为长文本时,选项卡宽度大于短文本选项卡。我一直尝试在互联网上搜索它,但找不到任何解决问题的答案。
Leo*_*ero 17
这是我解决这个问题的方法:
bottom: TabBar(
isScrollable: true,
controller: _tabController,
indicatorColor: Colors.white,
labelPadding: EdgeInsets.symmetric(horizontal: 10.0),
tabs: <Widget>[
Tab(
icon: Icon(Icons.camera_alt),
),
Tab(
text: "CONVERSAS",
),
Tab(
text: "STATUS",
),
Tab(
text: "CHAMADAS",
)
],
)
Run Code Online (Sandbox Code Playgroud)
只需使用填充,我认为它适用于所有屏幕尺寸!......不要忘记:
isScrollable: true
Run Code Online (Sandbox Code Playgroud)
TabBar(isScrollable: true)
Run Code Online (Sandbox Code Playgroud)
制作可滚动的标签栏。当您的标签文字内容或标签数量不适合显示尺寸时,此功能很有用。
或者,您可以执行以下操作:
child: new TabBar(
tabs: [
new Container(
width: 30.0,
child: new Tab(text: 'hello'),
),
new Container(
child: new Tab(text: 'world'),
),
],
)
Run Code Online (Sandbox Code Playgroud)
double width = MediaQuery.of(context).size.width;
double yourWidth = width / 5;
bottom: TabBar(
indicatorColor: Colors.white,
indicatorSize: TabBarIndicatorSize.label,
isScrollable: true,
controller: _tabcontroller,
tabs: <Widget>[
Container(
width: 30,
height: 50,
alignment: Alignment.center,
child: Icon(
Icons.camera_alt,
),
),
Container(
width: yourWidth,
height: 50,
alignment: Alignment.center,
child: Text("CHATS")),
Container(
width: yourWidth,
height: 50,
alignment: Alignment.center,
child: Text("STATUS")),
Container(
width: yourWidth,
height: 50,
alignment: Alignment.center,
child: Text("CALL"))
],
),`
---------------
`
Run Code Online (Sandbox Code Playgroud)
您可以labelPadding像这样添加到 TabBar Widget 中:
child: TabBar(
indicatorColor: Colors.white,
labelPadding: EdgeInsets.symmetric(horizontal: 2.0),
....
tabs: <Tab>[
......
]
)
......
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做(我不推荐)
在material/tabs.dart 文件中,编辑以下行:
padding: widget.labelPadding ?? tabBarTheme.labelPadding ?? kTabLabelPadding,
Run Code Online (Sandbox Code Playgroud)
与类似的东西
padding: EdgeInsets.symmetric(horizontal: 2.0),
Run Code Online (Sandbox Code Playgroud)
默认情况下,flutter 使用kTabLabelPadding填充。
颤振问题在这里
| 归档时间: |
|
| 查看次数: |
8914 次 |
| 最近记录: |