Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在Flatter CLI中禁用小部件树打印(意外按下“T”键很烦人)_Flutter_Terminal - Fatal编程技术网

Flutter 如何在Flatter CLI中禁用小部件树打印(意外按下“T”键很烦人)

Flutter 如何在Flatter CLI中禁用小部件树打印(意外按下“T”键很烦人),flutter,terminal,Flutter,Terminal,当我到达“R”进行热加载时,我不小心按下了终端中的“T”键,我的应用程序的小部件树总是被打印出来,并且需要几分钟才能完成,这让我非常恼火。如果可能,我确实需要关闭此功能,但我不知道如何关闭。TLDR: 注释掉中的第1285-1291行 flatter/packages/flatter\u tools/lib/src/resident\u runner.dart 在本地flatter git repo中提交更改,“t”将被禁用 这发生在内部 flatter/packages/flatter\u

当我到达“R”进行热加载时,我不小心按下了终端中的“T”键,我的应用程序的小部件树总是被打印出来,并且需要几分钟才能完成,这让我非常恼火。如果可能,我确实需要关闭此功能,但我不知道如何关闭。

TLDR:

注释掉中的第1285-1291行

flatter/packages/flatter\u tools/lib/src/resident\u runner.dart

在本地flatter git repo中提交更改,“t”将被禁用


这发生在内部

flatter/packages/flatter\u tools/lib/src/resident\u runner.dart

Future\u commonTerminalInputHandler(字符串)

方法

这里处理

case 't':
      case 'T':
        if (residentRunner.supportsServiceProtocol) {
          await residentRunner.debugDumpRenderTree();
          return true;
        }
        return false;
以及唯一的检查in
supportsServiceProtocol
getter,如果应用程序处于调试或配置文件模式,则返回true

如果该检查为真,则在VirtualMachine中调用该方法

  Future<Map<String, dynamic>> flutterDebugDumpRenderTree() {
    return invokeFlutterExtensionRpcRaw('ext.flutter.debugDumpRenderTree');
  }
因此,您已成功更改颤振源。 现在需要重建颤振工具

为此,您可以按照以下步骤操作:

如果您想更改并重新测试工具本身的行为,请在git中本地提交您的工具更改,然后在下次运行Flatter时,将从
packages/Flatter\u tools
中的Dart源重新生成工具。或者,删除
bin/cache/flatter\u tools.snapshot
文件。这样做将在下次运行flutter时强制从本地源重建工具

简单地说,在flatterroot中打开终端并提交您的更改。 下次运行
flatter run
时,您将在终端中看到消息输出:

建筑颤振工具…


当你想升级Flatter时,运行
git pull--rebase
,你的更改就会被保存。

你找到解决方案了吗?没有,我开始认为大多数人不使用终端,或者不像我们那样犯错误,或者他们像精神病患者一样等待。在这里,你应该清楚如何定制你的终端工作流程。如果你还有任何问题,请告诉我
      case 'S':
        if (residentRunner.supportsServiceProtocol) {
          await residentRunner.debugDumpSemanticsTreeInTraversalOrder();
          return true;
        }
        return false;
//      case 't':
//      case 'T':
//        if (residentRunner.supportsServiceProtocol) {
//          await residentRunner.debugDumpRenderTree();
//          return true;
//        }
//        return false;