import 'package:flu_merchant/ui/widget/custom_navbar.dart';
import 'package:flutter/material.dart';
class ChargeCenter extends StatefulWidget {
const ChargeCenter({Key? key}) : super(key: key);
@override
State<ChargeCenter> createState() => _ChargeCenterState();
}
class _ChargeCenterState extends State<ChargeCenter> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: CustomNavBar(
title: "充值中心",
),
body: SingleChildScrollView(
child: Container(
child: Column(
children: <Widget>[
Container(
color: Colors.green,
alignment: Alignment.center,
height: 100,
child: Text('哈哈哈'),
),
Container(
child: _VideoBookMusicBookWidget(),
),
Container(
color: Colors.grey,
height: 1000,
alignment: Alignment.topCenter,
child: Text("哈哈哈"),
),
],
),
),
),
);
}
}
class _VideoBookMusicBookWidget extends StatefulWidget {
const _VideoBookMusicBookWidget({Key? key}) : super(key: key);
@override
State<_VideoBookMusicBookWidget> createState() => _VideoBookMusicBookWidgetState();
}
class _VideoBookMusicBookWidgetState extends State<_VideoBookMusicBookWidget>
with SingleTickerProviderStateMixin {
final List<String> tabTxt = ['影视圈', '图书', '音乐'];
late TabController _tabController;
late Color selectColor, unSelectedColor;
late TextStyle selectStyle, unSelectedStyle;
late List<Widget> tabWidgets;
@override
void initState() {
// TODO: implement initState
super.initState();
_tabController = TabController(length: tabTxt.length, vsync: this);
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_tabController.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
height: 200.0,
child: DefaultTabController(
length: tabTxt.length,
child: Column(
children: [
Align(
child: _tabbar(),
alignment: Alignment.centerLeft,
),
_tabView()
],
),
),
);
}
Widget _tabbar() {
selectColor = Colors.black;
unSelectedColor = Color.fromARGB(255, 117, 117, 117);
selectStyle = TextStyle(fontSize: 18, color: selectColor);
unSelectedStyle = TextStyle(fontSize: 18, color: unSelectedColor);
tabWidgets = tabTxt.map((e) {
return Tab(
height: 30,
child: Text(e, style: TextStyle(fontSize: 15, color: Colors.red),),
);
}).toList();
return TabBar(
controller: _tabController,
tabs: tabWidgets,
isScrollable: true,
indicatorColor: Colors.purple,
indicatorSize: TabBarIndicatorSize.label,
labelColor: selectColor,
labelStyle: selectStyle,
unselectedLabelColor: unSelectedColor,
unselectedLabelStyle: unSelectedStyle,
);
}
Widget _tabView() {
return Expanded(
child: TabBarView(
controller: _tabController,
children: [
_tabBarItem(Colors.orange),
_tabBarItem(Colors.red),
_tabBarItem(Colors.blue),
],
),
);
}
_tabBarItem(Color color) {
return Container(
height: 100,
color: color,
);
}
}
flutter TabController 简单使用
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本篇文章介绍介绍一下,在Flutter中如何使用i18n来进行国际化和用Provider来简单的进行状态管理。 1...
- Stream 并不是 Flutter 专属库,而是 Dart 的库,和 Future 一样都是非常重要的异步编程方...
- 在日常开发的时候,我们会遇到勾选协议的需求,这个需求在Flutter中,我们可以通过Checkbox组件来实现。这...
- dio的使用方式有很多,我就只选出我认为最好用的api方式做下记录,把get成post就是post请求了,网络请求...
- 1.需求 最近使用flutter desktop,开发一个mqtt的桌面工具。 mqtt的发送没有问题,但是订阅的...