Improve TabBar

This commit is contained in:
2024-12-09 20:07:08 +08:00
parent 72b146a9bf
commit 463805f5ed

View File

@@ -201,8 +201,7 @@ class _MySliverAppBarDelegate extends SliverPersistentHeaderDelegate {
),
Expanded(
child: DefaultTextStyle(
style:
DefaultTextStyle.of(context).style.copyWith(fontSize: 20),
style: DefaultTextStyle.of(context).style.copyWith(fontSize: 20),
maxLines: 1,
overflow: TextOverflow.ellipsis,
child: title,
@@ -281,9 +280,7 @@ class _FilledTabBarState extends State<FilledTabBar> {
_IndicatorPainter? painter;
var scrollController = ScrollController(
keepScrollOffset: false
);
var scrollController = ScrollController();
var tabBarKey = GlobalKey();
@@ -305,15 +302,16 @@ class _FilledTabBarState extends State<FilledTabBar> {
@override
void didChangeDependencies() {
_controller = widget.controller ?? DefaultTabController.of(context);
_controller.animation!.addListener(onTabChanged);
initPainter();
super.didChangeDependencies();
var prevIndex = bucket.readState(context) as int?;
if (prevIndex != null && prevIndex != _controller.index) {
Future.microtask(() {
if (prevIndex != null &&
prevIndex != _controller.index &&
prevIndex >= 0 &&
prevIndex < widget.tabs.length) {
_controller.index = prevIndex;
});
}
_controller.animation!.addListener(onTabChanged);
}
@override
@@ -357,6 +355,7 @@ class _FilledTabBarState extends State<FilledTabBar> {
controller: scrollController,
builder: (context, controller, physics) {
return SingleChildScrollView(
key: const PageStorageKey('scroll'),
scrollDirection: Axis.horizontal,
padding: EdgeInsets.zero,
controller: controller,