You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansu_ui/example/lib/widgets/example_tab_bar.dart

87 lines
2.4 KiB

import 'package:ansu_ui/ansu_ui.dart';
import 'package:example/codeviewer/code_segments.dart';
import 'package:example/common/code_view.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class ExampleTabBar extends StatefulWidget {
ExampleTabBar({Key? key}) : super(key: key);
@override
_ExampleTabBarState createState() => _ExampleTabBarState();
}
class _ExampleTabBarState extends State<ExampleTabBar>
with TickerProviderStateMixin {
TabController? _tabController1;
TabController? _tabController2;
TabController? _tabController3;
TabController? _tabController4;
@override
void initState() {
super.initState();
_tabController1 = TabController(length: 3, vsync: this);
_tabController2 = TabController(length: 5, vsync: this);
_tabController3 = TabController(length: 10, vsync: this);
_tabController4 = TabController(length: 10, vsync: this);
}
@override
void dispose() {
_tabController1?.dispose();
_tabController2?.dispose();
_tabController3?.dispose();
_tabController4?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return ASScaffold(
title: '选项卡 TabBar',
actions: [
IconButton(
icon: Icon(
Icons.code,
color: Colors.black54,
),
onPressed: () => Get.to(
CodeView(text: (context) => CodeSegments.tabBar(context)),
),
)
],
body: Material(
color: kForegroundColor,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
// BEGIN tabBar
ASTabBar(
items: ['全部', 'Part1', 'Part2'],
controller: _tabController1!,
),
ASTabBar(
items: List.generate(5, (index) => 'Tab $index'),
controller: _tabController2!,
),
ASTabBar(
isScrollable: true,
items: List.generate(10, (index) => 'Tab $index'),
controller: _tabController3!,
),
ASTabBar.tag(
isScrollable: true,
tabItems: List.generate(10, (index) => 'Tab $index')
.map((e) => ASTabBarItem(title: e, tag: e))
.toList(),
controller: _tabController4!,
),
// END
],
),
),
);
}
}