如何删除 Flutter 中两个 TabController 之间的 Padding 或 Margin
How to remove Padding or Margin between two TabController in Flutter
我在 flutter 中创建了两个嵌套的 TabController
但我在两个选项卡之间有很大的边距或填充
你可以在下图中看到这个space
我想减少这个填充或边距,但我不知道该怎么做?
这是我的主页组件代码:
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return DefaultTabController(
initialIndex: 5,
length: 6,
child: Scaffold(
endDrawer: Directionality(
textDirection: TextDirection.rtl, child: NavMenu() ),
appBar: AppBar(
title: Text("داشبورد"),
bottom: TabBar(
tabs: [
Tab(
child: Container(
child: Text(
'چت',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'نردیان',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'خرگوش',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'کامی',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'همون',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
' نردبان',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
],
isScrollable: true,
indicatorColor: Colors.white,
indicatorWeight: 6.0,
),
),
body: TabBarView(
children: [
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
NardebanTabs(0xffff1111)
],
),
));
}
}
这是我的子选项卡组件 (ChatTabs):
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 6,
child: Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
backgroundColor: Colors.blue,
elevation: 0,
bottom: TabBar(
controller: _tabController,
isScrollable: true,
indicatorWeight: 3.0,
indicatorColor: Colors.white,
unselectedLabelColor: Colors.white,
tabs: [
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 0
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 0
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 1
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 1
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 2
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 2
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 3
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 3
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 4
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 4
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 5
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 5
? Colors.white
: Colors.white70)),
),
],
),
),
body: TabBarView(
controller: _tabController,
children: [
Ladder(),
Container(
height: 200.0,
child: Center(child: Text('گوج')),
),
Container(
height: 200.0,
child: Center(child: Text('هع')),
),
Container(
height: 200.0,
child: Center(child: Text('سن الله')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر اصیل')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر شش سیلندر')),
),
],
),
),
);
}
}
你的聊天选项卡class应用栏高度有问题,将chattabs应用栏中的toolbarHeight修改为1
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 6,
child: Scaffold(
appBar: AppBar(
toolbarHeight: 1,
automaticallyImplyLeading: false,
backgroundColor: Colors.blue,
elevation: 0,
bottom: TabBar(
controller: _tabController,
isScrollable: true,
indicatorWeight: 3.0,
indicatorColor: Colors.white,
unselectedLabelColor: Colors.white,
tabs: [
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 0
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 0
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 1
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 1
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 2
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 2
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 3
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 3
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 4
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 4
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 5
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 5
? Colors.white
: Colors.white70)),
),
],
),
),
body: TabBarView(
controller: _tabController,
children: [
Ladder(),
Container(
height: 200.0,
child: Center(child: Text('گوج')),
),
Container(
height: 200.0,
child: Center(child: Text('هع')),
),
Container(
height: 200.0,
child: Center(child: Text('سن الله')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر اصیل')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر شش سیلندر')),
),
],
),
),
);
}
}
只需将此代码粘贴到 ChatTabs class
要删除填充,您可以在 TabController
之间设置一个 iconMargin
并减少一个 space
Tab(
text: 'اجرمجر',
icon: Icon(
Icons.notifications,
color: Colors.white,
),
iconMargin: EdgeInsets.only(bottom: 10.0),
),
我在 flutter 中创建了两个嵌套的 TabController
但我在两个选项卡之间有很大的边距或填充
你可以在下图中看到这个space
我想减少这个填充或边距,但我不知道该怎么做?
这是我的主页组件代码:
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return DefaultTabController(
initialIndex: 5,
length: 6,
child: Scaffold(
endDrawer: Directionality(
textDirection: TextDirection.rtl, child: NavMenu() ),
appBar: AppBar(
title: Text("داشبورد"),
bottom: TabBar(
tabs: [
Tab(
child: Container(
child: Text(
'چت',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'نردیان',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'خرگوش',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'کامی',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
'همون',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
Tab(
child: Container(
child: Text(
' نردبان',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
],
isScrollable: true,
indicatorColor: Colors.white,
indicatorWeight: 6.0,
),
),
body: TabBarView(
children: [
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
ChatTabs(0xffff1111),
NardebanTabs(0xffff1111)
],
),
));
}
}
这是我的子选项卡组件 (ChatTabs):
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 6,
child: Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
backgroundColor: Colors.blue,
elevation: 0,
bottom: TabBar(
controller: _tabController,
isScrollable: true,
indicatorWeight: 3.0,
indicatorColor: Colors.white,
unselectedLabelColor: Colors.white,
tabs: [
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 0
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 0
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 1
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 1
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 2
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 2
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 3
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 3
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 4
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 4
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 5
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 5
? Colors.white
: Colors.white70)),
),
],
),
),
body: TabBarView(
controller: _tabController,
children: [
Ladder(),
Container(
height: 200.0,
child: Center(child: Text('گوج')),
),
Container(
height: 200.0,
child: Center(child: Text('هع')),
),
Container(
height: 200.0,
child: Center(child: Text('سن الله')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر اصیل')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر شش سیلندر')),
),
],
),
),
);
}
}
你的聊天选项卡class应用栏高度有问题,将chattabs应用栏中的toolbarHeight修改为1
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 6,
child: Scaffold(
appBar: AppBar(
toolbarHeight: 1,
automaticallyImplyLeading: false,
backgroundColor: Colors.blue,
elevation: 0,
bottom: TabBar(
controller: _tabController,
isScrollable: true,
indicatorWeight: 3.0,
indicatorColor: Colors.white,
unselectedLabelColor: Colors.white,
tabs: [
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 0
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 0
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 1
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 1
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 2
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 2
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 3
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 3
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 4
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 4
? Colors.white
: Colors.white70)),
),
Tab(
icon: Icon(Icons.notifications,
color: _tabController.index == 5
? Colors.white
: Colors.white70),
child: Text('اجرمجر',
style: TextStyle(
color: _tabController.index == 5
? Colors.white
: Colors.white70)),
),
],
),
),
body: TabBarView(
controller: _tabController,
children: [
Ladder(),
Container(
height: 200.0,
child: Center(child: Text('گوج')),
),
Container(
height: 200.0,
child: Center(child: Text('هع')),
),
Container(
height: 200.0,
child: Center(child: Text('سن الله')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر اصیل')),
),
Container(
height: 200.0,
child: Center(child: Text('اجر شش سیلندر')),
),
],
),
),
);
}
}
只需将此代码粘贴到 ChatTabs class
要删除填充,您可以在 TabController
之间设置一个iconMargin
并减少一个 space
Tab(
text: 'اجرمجر',
icon: Icon(
Icons.notifications,
color: Colors.white,
),
iconMargin: EdgeInsets.only(bottom: 10.0),
),