mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 15:57:25 +00:00
Improve TabBar
This commit is contained in:
@@ -201,8 +201,7 @@ class _MySliverAppBarDelegate extends SliverPersistentHeaderDelegate {
|
|||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: DefaultTextStyle(
|
child: DefaultTextStyle(
|
||||||
style:
|
style: DefaultTextStyle.of(context).style.copyWith(fontSize: 20),
|
||||||
DefaultTextStyle.of(context).style.copyWith(fontSize: 20),
|
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
child: title,
|
child: title,
|
||||||
@@ -281,9 +280,7 @@ class _FilledTabBarState extends State<FilledTabBar> {
|
|||||||
|
|
||||||
_IndicatorPainter? painter;
|
_IndicatorPainter? painter;
|
||||||
|
|
||||||
var scrollController = ScrollController(
|
var scrollController = ScrollController();
|
||||||
keepScrollOffset: false
|
|
||||||
);
|
|
||||||
|
|
||||||
var tabBarKey = GlobalKey();
|
var tabBarKey = GlobalKey();
|
||||||
|
|
||||||
@@ -305,15 +302,16 @@ class _FilledTabBarState extends State<FilledTabBar> {
|
|||||||
@override
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
_controller = widget.controller ?? DefaultTabController.of(context);
|
_controller = widget.controller ?? DefaultTabController.of(context);
|
||||||
_controller.animation!.addListener(onTabChanged);
|
|
||||||
initPainter();
|
initPainter();
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
var prevIndex = bucket.readState(context) as int?;
|
var prevIndex = bucket.readState(context) as int?;
|
||||||
if (prevIndex != null && prevIndex != _controller.index) {
|
if (prevIndex != null &&
|
||||||
Future.microtask(() {
|
prevIndex != _controller.index &&
|
||||||
|
prevIndex >= 0 &&
|
||||||
|
prevIndex < widget.tabs.length) {
|
||||||
_controller.index = prevIndex;
|
_controller.index = prevIndex;
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
_controller.animation!.addListener(onTabChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -357,6 +355,7 @@ class _FilledTabBarState extends State<FilledTabBar> {
|
|||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
builder: (context, controller, physics) {
|
builder: (context, controller, physics) {
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
|
key: const PageStorageKey('scroll'),
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
|
Reference in New Issue
Block a user