flutter TabBarView 不会被 TabController 改变

2024-04-10

我正在尝试以编程方式在应用程序内的选项卡之间进行更改。 tabController.animateTo() 只改变TabBar,但不改变TabBarView。

这是我的示例,每当我向右滑动时,它都应该 animateTo LEFT,因为选项卡更改侦听器会自动调用 animateTo(0)。 但只有 TabBar 更改为 LEFT(如预期),而不是 TabBarView(非预期)。我想将两者都更改为 LEFT。

这是一个错误还是我错过了什么?

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      home: new MyTabbedPage(),
    );
  }
}

class MyTabbedPage extends StatefulWidget {
  const MyTabbedPage({Key key}) : super(key: key);

  @override
  _MyTabbedPageState createState() => new _MyTabbedPageState();
}

class _MyTabbedPageState extends State<MyTabbedPage> with SingleTickerProviderStateMixin {
  final List<Tab> myTabs = <Tab>[
    new Tab(text: 'LEFT'),
    new Tab(text: 'RIGHT'),
  ];

  TabController _tabController;

  @override
  void initState() {
    super.initState();
    _tabController = new TabController(vsync: this, length: myTabs.length);
    _tabController.addListener(_handleTabChange);
  }

  @override
  void dispose() {
    _tabController.dispose();
    super.dispose();
  }

  void _handleTabChange() {
    _tabController.animateTo(0);
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("Tab demo"),
        bottom: new TabBar(
          controller: _tabController,
          tabs: myTabs,
        ),
      ),
      body: new TabBarView(
        controller: _tabController,
        children: myTabs.map((Tab tab) {
          return new Center(child: new Text(tab.text));
        }).toList(),
      ),
      floatingActionButton: new FloatingActionButton(
        onPressed: () => _tabController.animateTo((_tabController.index + 1) % 2), // Switch tabs
        child: new Icon(Icons.swap_horiz),
      ),
    );
  }
}

那是因为每一个变化都有一个监听者_tabController.addListener(_handleTabChange);每次你打电话的时候_tabController.animateTo, 方法_handleTabChange执行后它只会动画到第一个选项卡。

删除或注释此行

 _tabController.addListener(_handleTabChange);

它应该有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flutter TabBarView 不会被 TabController 改变 的相关文章

  • 如何让 BottomNavigationBar 粘在键盘颤动的顶部

    我正在尝试制作一个简单的聊天应用程序 所以我创建了一个脚手架和我的身体 将是消息和我的bottomNavigationBar将是我的打字字段和发送图标 我添加了一个文本字段 但键入时导航栏被键盘隐藏 这是我的代码BottomNavigati
  • 滑动时向 PageView 添加新页面

    我目前正在制作一个日历应用程序 我想向右或向左滑动以转到下个月或上个月 我使用 PageView 时首先设置了一个包含 3 个项目的数组 第一个页面是第二个项目 我想向右滑动并在末尾添加一个页面 我想向左滑动并在开头添加一个页面 目前 如果
  • 如何结合GetX和build_value的使用?

    我们的应用程序有很多提供商 https pub dev packages provider https pub dev packages provider 使用的代码built value https pub dev packages bu
  • Flutter MacOs 访问文件

    我正在尝试在 Flutter 中构建一个自定义桌面应用程序 以便能够加载图片 例如图库 为此 我将要求用户选择一个文件夹 它会自动显示图片 现在 从简单的事情开始 由于这是第一次为 Mac 开发 我只是尝试通过Image file new
  • Flutter:BottomNavigationBar 在选项卡更改时重建页面

    我在 Flutter 中的 BottomNavigationBar 有问题 如果我更改选项卡 我想让我的页面保持活动状态 这是我的实现 底部导航 class Home extends StatefulWidget override Stat
  • 如何在 Flutter 中对 RaisingButton 的颜色进行动画处理?

    我有一个RaisedButton 我想要animate它的颜色来自green to red 反之亦然 每次用户单击它时 这怎么能做到呢 您可以使用AnimatedContainer https api flutter dev flutter
  • 我想将对象列表添加到 firestore 文档中,-flutter

    我想将对象列表添加到 firestore 文档 我定义了产品数据模型 我还有类别数据模型 我想将类别列表添加到 firestore 中的产品文档中 我将类别添加到临时列表 然后将值放入product categories 产品 类别 类别t
  • 如何在flutter中实现字母滚动

    有没有任何插件或方法可以在 flutter 中实现这种滚动 具体来说 右侧的字母列 例如突出显示当前字母表字母 或者如果点击某个字母 则滚动视图会直接转到该字母标题 为了按字母顺序排序 我们可以这样做List sort 对于粘性标题 我们也
  • Charts_flutter x 轴上的标签/文本相互重叠

    我使用flutter中的charts flutter包渲染条形图 但 x 轴上的域标签相互重叠 我有办法解决这个问题吗 有没有办法倾斜文本或增加图表的宽度 使其可以水平滚动 我尝试过寻找任何解决方案 例如 labelspecs 但无法找到解
  • 如何在 Flutter 中删除/减少 CheckboxListTile 的文本和复选框之间的空间?

    如何减少 删除下图中 CheckboxListTile 和文本之间的空间 看来以下行仅删除了周围的空间 CheckboxListTile title Text Account number not available contentPadd
  • 更改语言 Flutter 的按钮

    我正在 Flutter 中构建一个应用程序 到目前为止 我正在使用 JSON 国际化 其中应用程序的语言基于用户手机中默认的语言 它工作得很好 但我想给用户有机会在不更改手机系统语言设置的情况下更改语言 只需单击按钮 然后应用程序即可更改语
  • Flutter:如何移动文本字段字符计数器?

    标题很好地总结了这个问题 我有一个TextField with a maxLength 250这就是它的样子 有没有办法把柜台放在其他地方 最好位于发送按钮的左侧 但也可能位于发送按钮的上方和左侧TextField 有任何想法吗 谢谢 可能
  • Flutter Websockets MacOS:相同的代码可以在调试模式下工作,但不能在发布模式下工作:“(操作系统错误:提供了节点名或服务名..)”

    Summary 我有一个在 Flutter 中使用 WebSockets 的程序 该程序在debug模式 但运行相同exact代码在release模式会导致错误 Context Flutter 文档告诉我们如何使用 WebSocket ht
  • NestedScrollView 与 ListView 中的粘性选项卡

    布局按预期工作 但以下情况除外 当我滚动一页时 第二页也会滚动 没有那么多 但足以掩盖第一个项目 我可以想象它与 NestedScrollView 有关 但我不知道如何继续 import package flutter material d
  • Flutter - 构建失败并出现异常

    当我启动我的应用程序时 我收到此错误消息 自上次运行以来我没有进行任何更改 当时一切都很好 有人知道如何解决这个问题吗 谢谢 FAILURE Build failed with an exception 什么地方出了错 无法确定任务 app
  • Flutter如何在BottomNavigationBar中添加边距或填充

    我正在尝试制作底部导航栏 但在屏幕上左右填充 现在 我用容器包裹 BottomNavigationBar 并在其中添加填充 问题是 BottomNavigationBar 默认背景仍然包裹所有图层 所以我们可以删除那里的背景颜色吗 Goal
  • 如何将额外的文本添加到颤振谷歌地图自定义标记中?

    问题是如何将自定义谷歌地图标记上的文本重叠与代表车辆登记号的文本融合在一起 我尝试使用此方法将文本叠加在图标上 生成器 上下文 gt 但根本不被认可 class MapsDemo extends StatefulWidget overrid
  • 当我使用 ListView 时,ListTile OnTap 正在工作。但是当我使用 ListWheelScrollView 时它不起作用

    当我使用 ListView 时 ListTile OnTap 正在工作 但是当我使用 ListWheelScrollView 时它不起作用 我的意思是它不会被窃听 观点发生变化 但我似乎无法点击它 我在很多地方和链接中寻找解决方案 但仍然找
  • 传递 Stack 中两个小部件之间的所有手势

    我正在开发一个应用程序 在地图上显示标记 如下所示 它的工作方式是标记在地图小部件 上方 呈现为Stack 我的问题是 目前 标记 吸收 用于控制下方地图的手势 如果手势在标记上开始 因此我想知道 有没有办法在堆栈中的两个小部件之间传递所有
  • 如何在 Flutter 中恢复上次路由

    我正在开发 Flutter 应用程序 但遇到了问题 在我的 main dart 中 我设置了一个名为 FirstScreen 的主路由 然后用户可以转到 LoginScreen 登录帐户 因此 如果我按主页按钮 然后尝试重新打开应用程序 出

随机推荐

  • 如何计算FB页面的点赞数?

    我必须做一个非常简单的操作 但我的编程能力还不够 我必须计算 Facebook 页面上的点赞数并将该数字打印在我的网站上 我有两个脚本可以很好地完成普通网站的工作 但它们不想显示页面的点赞数
  • java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompat

    我在 4 4 2 版本的 Samsung note 2 中收到以下错误 我也尝试过 HTC One X 4 2 2 我认为它是棒棒糖之前的 因为它在 Lollipop 上运行良好 有什么猜测吗 这是我的 gradle 文件 apply pl
  • 如何使用 Python 获取存储库分支的列表

    我正在尝试使用 Python 和以下代码获取存储库上所有可用分支的列表 import subprocess branches All command git branch r branch list subprocess check out
  • 向客户端发送 Hibernate 代理类会出现哪些问题

    我有一个 POCO 类 在 WCF 服务层中与 NHibernate 一起使用 我正在考虑尝试将 NHibernate 代理类发送到客户端 这是我控制的客户端 我们通过系统范围的保留来处理记录更新 因此在任何给定时间只能向客户端发送该实体的
  • 如何使用 AngularJS 以编程方式创建 URL

    目前我正在研究 AngularJS 框架 我正在使用 route 服务来深度链接到我的单页应用程序 现在 我想在我的应用程序内部导航 例如 通过仅更改当前 URL 的搜索部分 在 JavaScript 中使用 location 服务很容易做
  • 如果 Google App Engine cron 作业有 10 分钟限制,那么为什么我会在正常的 30 秒后收到 DeadlineExceededError ?

    根据https developers google com appengine docs python config cron https developers google com appengine docs python config
  • 在C#中打印数组的所有内容

    我试图在调用一些改变数组的方法后打印出数组的内容 在Java中我使用 System out print Arrays toString alg id 我如何在 C 中做到这一点 你可以试试这个 foreach var item in you
  • 使用路由器传递数据

    我在将数据传递给其他组件时遇到问题 这是一个例子 onEdit data this router navigate edit state data relativeTo this activatedRoute 还有我的路由器ts file
  • 在 Woocommerce 中的 WYSIWYG 编辑器字段中添加或替换变体字段

    我正在尝试弄清楚如何将 Woocommerce 变体订阅产品文本字段转换为所见即所得编辑器 How it looks now 正如您所看到的 我将代码放入该字段以更新其外观 但这对于不懂代码的客户来说不起作用 如何向该字段添加文本编辑器 函
  • 握手过程中收到close_notify

    我已在所有 18 台服务器上配置了 SSL HTTPS 所有 18 台服务器均使用 SSL 相互通信 一切都工作正常 突然我得到了这个错误 握手期间收到close notify 日志 2011 06 03 03 36 17 372 Log
  • 使用react-router-dom(v6)成功登录后Reactjs重定向到仪表板页面

    我正在使用 redux toolkit 制作简单的 Reactjs 登录表单 我想重定向到dashboard登录成功后的页面 它抛出以下错误 我是 ReactJS 的新手 如果我错过了什么 请告诉我 Error Uncaught in pr
  • 如何修复 Cocoapods 安装设置错误?

    我正在尝试在我的 mac 上安装 cocoapods 但无法安装 它显示以下错误 sudo gem update system Latest version currently installed Aborting sudo gem ins
  • 是否有任何库可以将 SQL 查询表示为 Java 代码中的对象? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道是否有任何库可以用来将 SQL 查询表示为 Java 中的对象 在代码中 我有大量 java l
  • 删除所有表的django命令是什么?

    是否有 django 命令 A 删除所有表 B 删除所有表中的所有数据 C 创建模型中定义的所有表 我现在找不到这些 我所说的命令是指那些小事情 比如 runserver etc A 删除所有表 manage py sqlclear将打印删
  • UISearchBar 与 InputView

    我正在为我的应用程序制作自定义键盘 它与 UITextField 配合得很好 但 UISearchBar 不支持 inputView UIView inputView if self keyboard nil self keyboard M
  • 在 Django Web 应用程序中处理计算密集型任务

    我有一个桌面应用程序 正在将其移植到 Django Web 应用程序 该应用程序有一些计算量相当大的部分 使用 numpy scipy 和 pandas 等库 显然 将计算密集型代码导入到 Web 应用程序中并运行它并不是一个好主意 因为这
  • OpenNLP 训练中的“截止”和“迭代”是什么意思?

    是什么意思cut off and iteration用于 OpenNLP 培训 或者自然语言处理 我只需要对这些术语进行外行解释 据我认为 迭代是算法重复的次数 截止是一个值 如果文本的值高于某个特定类别的截止值 它将映射到该类别 我对吗
  • 使用填充重新定位 ListView 的滚动条

    我有一个ListView右侧 和左侧 有填充 目前该列表看起来像这样 ROW ROW ROW ROW 最右边的线是屏幕的边缘 s 是滚动条 其右侧的空白区域是ListView向右填充 I 是让滚动条位于填充的右侧 如下所示 ROW
  • Excel 何时以及如何重新计算其公式?

    据我了解 Excel 可以设置为手动或自动重新计算公式 但在阅读了互联网上的一些信息后 我开始对 Excel 自动重新计算公式时的作用感到困惑 我之前假设 Excel 仅在公式引用的单元格发生更改或公式包含易失性数据 例如TODAY 功能
  • flutter TabBarView 不会被 TabController 改变

    我正在尝试以编程方式在应用程序内的选项卡之间进行更改 tabController animateTo 只改变TabBar 但不改变TabBarView 这是我的示例 每当我向右滑动时 它都应该 animateTo LEFT 因为选项卡更改侦