我正在尝试在 Visual Studio 代码上为我的 flutter 应用程序运行调试模式(单击“运行和调试”),但是当我这样做时,我面临以下问题:
The Xcode project defines schemes: release, private.
Exception: You must specify a --flavor option to select one of the available schemes.
Run Code Online (Sandbox Code Playgroud)
所以我有这两种“口味”,但我不知道如何指定使用哪一种。通常,通过终端运行应用程序需要我这样指定:flutter run --flavor private但我不确定如何为调试执行相同的操作。调试模式是否有等效命令?
希望得到一些帮助,提前致谢!
我正在使用flutter_bloc包。如果我有一个状态是小部件列表的块,这是一个不好的做法吗?我使用这个块从列表中推送(添加)和弹出(删除)小部件/迷你屏幕。我将此列表用作弹出菜单的主体,其中有类似嵌入式导航的内容。列表的最后一个成员是显示在弹出窗口中的小部件。
每次我按下或弹出时,我都会发出一个新的状态。该块很有用,因为这样我就可以从弹出窗口中显示的小部件/迷你屏幕中的任何位置调用推送或弹出。如果我的用例很清楚或者您需要更多详细信息,请告诉我。谢谢。
以下是相关代码片段:
自定义堆栈(其中E类型为Widget):
class PopoverStack<E> {
PopoverStack() : _storage = <E>[];
final List<E> _storage;
void push(E element) {
_storage.add(element);
}
void pop() {
_storage.removeLast();
}
E get last => _storage.last;
bool get isEmpty => _storage.isEmpty;
bool get isNotEmpty => !isEmpty;
PopoverStack.of(PopoverStack<E> stack) : _storage = List<E>.of(stack._storage);
}
Run Code Online (Sandbox Code Playgroud)
Bloc for stack(PopoverPage是一个抽象类小部件将扩展):
class PopoverCardStackBloc extends Cubit<PopoverStack<PopoverPage>> {
PopoverCardStackBloc(PopoverStack<PopoverPage> popoverStack) : super(popoverStack);
void push(PopoverPage element) {
emit(PopoverStack.of(state..push(element)));
}
void pop() {
emit(PopoverStack.of(state..pop()));
}
} …Run Code Online (Sandbox Code Playgroud) 当在 Dart 中进行昂贵的计算时,强烈建议启动额外的isolate。我知道,由于隔离不共享任何状态,如果您想在它们之间创建通信,则可以使用SendPort和ReceivePort将消息从一个隔离传递到另一个隔离隔离。然而,当在另一个 Isolate 中进行计算时,在这个新创建的isolate 的过程中,实际上可以初始化一个已经创建的变量,例如 Singleton 的变量,对吧?
所以我的问题是:这样继续下去可以吗?管理从隔离中进行的计算中获得的数据的正确方法是什么?为什么?在新隔离区中进行计算时,我们是否应该始终只处理消息?
我\xe2\x80\x99见过一些与此问题类似的帖子,但它们\xe2\x80\x99不是我\xe2\x80\x99m寻找的。我想在 Flutter 中创建一个具有自定义形状的按钮。为此,我在 GestureDetector 小部件内使用 CustomPaint 小部件。问题是我不\xe2\x80\x99不希望不可见区域可点击。这正是 GestureDetector 所发生的情况。换句话说,我只希望我创建的形状是可点击的。但现在看来,我的自定义形状所在的地方有一个看不见的正方形,而且也是可点击的。我不想要这样。我在这篇文章中发现的最相似的问题:
\n\n然而,就我而言,我\xe2\x80\x99m 处理自定义形状,而不是正方形或圆形。
\n让我与您分享代码和可能的按钮的示例图像。您可以将其复制并直接粘贴到您的主目录中。复制我的问题应该很容易。
\nimport \'package:flutter/material.dart\';\nimport \'dart:ui\' as ui;\n\nvoid main() {\n runApp(MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n // This widget is the root of your application.\n @override\n Widget build(BuildContext context) {\n return MaterialApp(\n title: \'Custom Shapes\',\n theme: ThemeData.dark(),\n home: MyHomePage(title: \'Custom Shapes App\'),\n );\n }\n}\n\nclass MyHomePage extends StatefulWidget {\n MyHomePage({Key key, this.title}) : super(key: key);\n\n final String title;\n\n @override\n _MyHomePageState createState() => _MyHomePageState();\n}\n\nclass _MyHomePageState extends State<MyHomePage> …Run Code Online (Sandbox Code Playgroud) 我想知道哪个类调用了特定的函数。我一直在为此查找文档,但没有成功。我已经知道如何获取类的名称,但这与我正在寻找的不同。我已经找到了一些与 java 相关的东西,但对于 dart 我还没有。也许我错过了一些东西。
举例来说,我有一个打印函数,如下所示:
class A {
void printSomethingAndTellWhereYouDidIt() {
// Here I would also include the class where this function is
// being called. For instance:
print('you called the function at: ...');
//This dot-dot-dot is where maybe should go what I'm looking for.
}
}
class B {
A a = A();
void test() {
a.printSomethingAndTellWhereYouDidIt();
}
}
Run Code Online (Sandbox Code Playgroud)
输出应该类似于:
you called the function at: B
Run Code Online (Sandbox Code Playgroud)
请告诉我是否有办法实现这一目标。背后的想法是将其与记录器一起使用,例如logging包。先感谢您。
我正在逐渐了解 Flutter 的日志包。最简单的事情是在控制台中按级别显示不同的日志消息,但我也想将日志输出存储到文件中,以便以后能够处理这些信息。我想知道社区中是否有人已经做过类似的事情并愿意分享对此的解释或具体实现。
在我看来,开发人员应该拥有了解一些基本和一般原则的资源,了解如何为测试编写适当的描述。应该很长吗?短的?应该包括数字吗?运营?等等...
void main() {
//The first argument is the description I mean
test('Counter value should be incremented', () {
final counter = Counter();
counter.increment();
expect(counter.value, 1);
});
}
Run Code Online (Sandbox Code Playgroud)
我在文档中没有找到任何有关它的信息。以供参考:
那么这是完全开放的吗?如果是这样,并回答确认情况确实如此,我们也将不胜感激。先感谢您。