flutter - 在 Flutter 中更改选项卡时禁用动画

标签 flutter

我有一个带有 3 个标签的标签栏。当从第一个选项卡更改为第三个选项卡时,还会调用 tab2 的 initState 方法。我不想要那个。

import 'package:flutter/material.dart';

void main() {
  runApp(TabBarDemo());
}

class TabBarDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
        length: 3,
        child: Scaffold(
          appBar: AppBar(
            bottom: TabBar(
              tabs: [
                Tab(icon: Icon(Icons.directions_car)),
                Tab(icon: Icon(Icons.directions_transit)),
                Tab(icon: Icon(Icons.directions_bike)),
              ],
            ),
            title: Text('Tabs Demo'),
          ),
          body: TabBarView(
            children: [
              Icon(Icons.directions_car),
              Icon(Icons.directions_transit),
              Icon(Icons.directions_bike),
            ],
          ),
        ),
      ),
    );
  }
}

在 tab1 上并单击 tab3 时,我希望立即显示 tab3。没有动画。

最佳答案

我还没有测试过这个,但你可以尝试设置一个自定义 TabControllerTabBarTabBarView ,它覆盖了 animateTo跳过动画的方法:

class CustomTabController extends TabController {
  @override
  void animateTo(int value, {Duration duration = kTabScrollDuration, Curve curve = Curves.ease}) {
    super.animateTo(value, duration: null, curve: null);
  }
}

关于flutter - 在 Flutter 中更改选项卡时禁用动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60545618/

相关文章:

json - 如何将此 json 转换为 Flutter 对象

flutter - Flutter BLoC 库中带有验证的文本字段

flutter - 相当于 GetX 中的 BlocListener

Flutter:如何等待android平台 channel 函数完成并返回结果

flutter - 在 SingleChildScrollView 中实现嵌套 ListView

flutter - 如何在Flutter中查看调用路由名称?

ios - Flutter ios存档应用程序 undefined symbol

json - Flutter从互联网上获取数据

android - Flutter - TextFormField 上的键盘

android - 从第2页和第3页弹出后,有没有办法在第1页运行功能? [等候接听]