小编Nik*_*aab的帖子

有没有一种方法可以将多个元注释合并为一个?

目前,我们的代码库中有很多类,它们使用相同的元注释。一个例子是:

@autoEquatable
@immutable
@jsonSerializable
class SignInWithFacebookEvent extends LoginEvent {}
Run Code Online (Sandbox Code Playgroud)

Dart 有没有一种方法可以将它们合并为一个?例如:

@event
class SignInWithFacebookEvent extends LoginEvent {}
Run Code Online (Sandbox Code Playgroud)

这会简单得多,而且如果我需要从所有事件类中添加/编辑/删除另一个元注释,我可以只添加/编辑/删除一个,而无需编辑数百个类。

编辑:

更好的是元注释的继承,例如:

@autoEquatable
@immutable
@jsonSerializable
class LoginEvent {}
Run Code Online (Sandbox Code Playgroud)

所有子类都有这些注释。这样的事情可能吗?

dart flutter

12
推荐指数
1
解决办法
616
查看次数

带数字键盘的 Flutter TextField,需要逗号而不是句点(仅限 iOS)

我想在 Flutter 中创建一个 TextField。TextField 用于十进制数字。所以我设定了keyboardType: TextInputType.numberWithOptions(decimal: true)。现在我在 iOS 上得到了一个数字键盘,但这个数字键盘有一个句点 (.),而不是逗号 (,)。iOS 设备的语言是德语

\n\n

我当前的文本字段:

\n\n
TextField(\n  key: Key("pricePerLiter"),\n  style: TextStyle(color: inputTextColor),\n  textAlign: TextAlign.end,\n  focusNode: pricePerLiterFocusNode,\n  keyboardType:\n      TextInputType.numberWithOptions(decimal: true),\n  decoration: inputDecoration.copyWith(\n      suffixText: "\xe2\x82\xac", errorText: pricePerLiterError),\n  controller: pricePerLiterTextController,\n  onEditingComplete: () {},\n  onChanged: (value) {},\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的本地化在我的 Material 应用程序中设置如下:

\n\n
MaterialApp(\n  localizationsDelegates: [\n    GlobalMaterialLocalizations.delegate,\n    GlobalWidgetsLocalizations.delegate,\n  ],\n  supportedLocales: [\n    const Locale(\'de\', \'DE\'),\n  ],\n  home: MyHomePage(),\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我需要更改什么才能获得带有逗号 (,) 而不是句点 (.) 的数字键盘?

\n

textfield ios flutter

11
推荐指数
1
解决办法
1万
查看次数

RenderFlex 溢出错误仅出现在小部件测试中,如果我运行应用程序一切正常

可以在这里找到一个最小的可重现示例: https: //github.com/HerrNiklasRaab/repro-widget-test-overflow

\n

我当前的应用程序如下所示:

\n
import \'package:flutter/material.dart\';\n\nvoid main() {\n  runApp(MaterialApp(\n      home: Scaffold(\n    body: DashboardNewsItem(),\n  )));\n}\n\nclass DashboardNewsItem extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return Container(\n      color: Colors.green,\n      width: 165,\n      height: 100,\n      child: Row(\n        children: <Widget>[\n          Text(\n            "Zu Instagram",\n          ),\n          Icon(Icons.arrow_forward)\n        ],\n      ),\n    );\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

如果我在设备上运行它,它看起来如下所示:\n

\n

一旦我使用以下小部件测试运行此命令:

\n
import \'package:flutter/material.dart\';\nimport \'package:flutter_test/flutter_test.dart\';\nimport \'package:test_ble/main.dart\';\n\nvoid main() {\n  testWidgets(\'Counter increments smoke test\', (WidgetTester tester) async {\n    await tester.pumpWidget(MaterialApp(\n        home: Scaffold(\n      body: DashboardNewsItem(),\n    )));\n  });\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我得到这个异常:

\n
Counter increments smoke test:\n\n\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1 …
Run Code Online (Sandbox Code Playgroud)

dart flutter

7
推荐指数
1
解决办法
6234
查看次数

在 dart 中调试时如何访问未来值?

请投票: https ://github.com/dart-lang/sdk/issues/40198

我想知道如何在 vs-code 中调试时获得未来的价值?现在我需要引入另一个临时变量来让调试器等待该语句。这就是我目前访问值的方式:

 Future<void> disconnect2() async {
    var conn = await isConnected;
    if (conn) await internalDisconnect();
  }
Run Code Online (Sandbox Code Playgroud)

但我想写下以下内容:

  Future<void> disconnect() async {
    if (await isConnected) await internalDisconnect();
  }
Run Code Online (Sandbox Code Playgroud)

并且仍然能够isConnected使用调试器访问 的值。

到目前为止我尝试过的:

尝试将表情添加(await isConnected)到手表中。 在此输入图像描述(await isConnected)尝试在调试控制台中 评估表达式。在此输入图像描述 尝试将表情添加isConnected到手表中。 在此输入图像描述isConnected尝试在调试控制台中 评估表达式。在此输入图像描述 尝试通过将鼠标悬停在实例上来访问该值。在屏幕截图中它是空的,但大多数时候我只能访问未来的对象。 在此输入图像描述

有没有什么简单的方法可以在调试时获取未来的价值?

dart visual-studio-code flutter vscode-debugger

7
推荐指数
1
解决办法
2626
查看次数

不要使用 Flutter 和 Android Studio 进入库代码

有没有关于如何在调试时停止进入外部库代码的解决方案?在 Visual Studio Code 中,您可以选择设置:“debugExternalLibraries”。Android Studio 有类似的选项吗?

dart android-studio flutter

5
推荐指数
0
解决办法
916
查看次数

当在 async 方法中使用 await 时,Dart 会跳过代码行

在我的 Flutter 项目中,我有以下代码:

if(await model.login(loginMailTextController.text, 
   loginPasswordTextController.text)){
   Navigator.of(context).pushReplacementNamed("/main");
}
Run Code Online (Sandbox Code Playgroud)

这段代码在我的模型中调用了这个函数:

Future<bool> login(String mail, String password) async {
   _auth.signInWithEmailAndPassword(email: mail, password: password);
   return true; //Makes no sense, only for testing
}
Run Code Online (Sandbox Code Playgroud)

它按预期工作并调用了 navigator 方法,但是如果我在方法之前添加awaitsignInWithEmailAndPassword

Future<bool> login(String mail, String password) async {
   await _auth.signInWithEmailAndPassword(
   email: mail, password: password);
   return true; //Debugger won't stop there when a breakpoint is set
}
Run Code Online (Sandbox Code Playgroud)

那么 if 语句中的表达式为假。此外,当在标记行上设置断点时,调试器不会停止。在signInWithEmailAndPassword方法上设置断点就像魅力一样。

这是一个错误还是我犯了一个错误?

dart android-studio flutter

5
推荐指数
1
解决办法
1066
查看次数

Visual Studio Code Intellisense 选择带有输入点的

Visual Studio Code 的智能感知目前具有以下行为:

  1. 你输入一些东西。
  2. 智能感知弹出。
  3. 选择智能感知中的第一个条目。
  4. 按 Enter 键,建议就会被输入到编辑器中。
  5. 智能感知已关闭

在 Visual Studio 中,以下行为是默认行为:

  1. 你输入一些东西。
  2. 智能感知弹出。
  3. 选择智能感知中的第一个条目。
  4. “.” (点或点),建议被输入到编辑器中。
  5. 智能感知已关闭

是否有任何设置可以更改 Visual Studio 行为?

visual-studio-code

3
推荐指数
1
解决办法
2519
查看次数

如何在Firestore中查询嵌套对象

我想以以下格式存储数据:

{
   "chatName": "Football",
   "chatMembers":
   [
      {
         "userId": "nSWnbKwL6GW9fqIQKREZENTdVyq2",
         "name": "Niklas"
      },
      {
         "userId": "V3QONGrVegQBnnINYHzXtnG1kXu1",
         "name": "Timo"
      },
   ]
} 
Run Code Online (Sandbox Code Playgroud)

我的目标是让所有的聊天记录,其中在用户与签约userId是在chatMembers列表中。如果已userId登录用户的不在chatMembers属性中,则应忽略该聊天。这可能吗?

如果这不可能,那么我该如何通过子集合来实现呢?

我的开发语言是dart,但是您也可以发布其他语言的解决方案。

我目前的尝试是这样,但这不起作用:

_firestore.collection(collectionName).where("chatMembers.userId", isEqualTo: userId).snapshots()
Run Code Online (Sandbox Code Playgroud)

nosql dart firebase flutter google-cloud-firestore

3
推荐指数
2
解决办法
4057
查看次数

为什么 Bootstrap 3 折叠与双击复选框状态不同步?

根据这个问题:“选中复选框时 Twitter Bootstrap 3 崩溃”我已经尝试过这个解决方案,因为它既简单又干净。

http://jsfiddle.net/L0h3s7uf/1/

<div class="panel-group driving-license-settings" id="accordion">
    <div class="panel panel-default">
        <div class="panel-heading">
             <h4 class="panel-title">
                                      <div class="checkbox">
                <label data-toggle="collapse" data-target="#collapseOne">
                    <input type="checkbox"/> I have Driver License  
                </label>
            </div>
                                  </h4>

        </div>
        <div id="collapseOne" class="panel-collapse collapse in">
            <div class="panel-body">
                <div class="driving-license-kind">
                    <div class="checkbox">
                        <input type="checkbox" value="">A</div>
                    <div class="checkbox">
                        <input type="checkbox" value="">B</div>
                    <div class="checkbox">
                        <input type="checkbox" value="">C</div>
                    <div class="checkbox">
                        <input type="checkbox" value="">D</div>
                    <div class="checkbox">
                        <input type="checkbox" value="">E</div>
                </div>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

但是有了这个“解决方案”,你就有了问题。如果您太快地单击复选框,该区域会折叠,但复选框会被选中。

我怎样才能防止这个双击问题?

我在用:

  • 引导程序 3
  • jQuery 3.1.1

javascript css checkbox jquery twitter-bootstrap

2
推荐指数
1
解决办法
2617
查看次数

Dart 使用 12 GB 内存运行

在此处输入图片说明 我在我的 PC 上使用 16 GB RAM。这开始发生在没有任何理由的工作中,据我所知。如果我启动 VS Code,这总是会发生。VS Code 在底部栏中显示分析。搜索或转到定义之类的东西不起作用。

我还删除了 Windows 并重新安装了它,其中包含用于编程 flutter 的所有必需程序。

任何人都知道问题是什么?

链接到我当前项目的源代码:https : //drive.google.com/file/d/1Tk1GEuLKml0MJvFWP916Zszkeo-dpioe/view?usp=sharing

VS Code 扩展包括: - Dart 插件 - Flutter 插件 - Matrial Icon Pack

Flutter 0.9.4 • 频道测试版 • https://github.com/flutter/flutter.git 框架 • 修订版 f37c235c32(3 周前) • 2018-09-25 17:45:40 -0400 引擎 • 修订版 74625aed32 工具 • Dart 2.1.0-dev.5.0.flutter-a2eb050044

VS 代码版本为:1.28.1

dart visual-studio-code

2
推荐指数
1
解决办法
2848
查看次数

在 Flutter 中的嵌套“GestureDetectors”上接收“onVerticalDragUpdate”

以下代码段只是我真实情况的最小化版本。在我的实际情况中,这些GestureDetectors位于不同的小部件中。我的问题是,该onVerticalDragUpdate事件仅由内部 GestureDetector 接收。我什至behavior将内部的设置GestureDetectorHitTestBehavior.translucent,这意味着事件应该冒泡到父小部件。或者我有什么问题吗?

void main() {
  debugPaintPointersEnabled = true;
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
        onVerticalDragUpdate: (details) {
          var test = "test";
        },
        child: GestureDetector(
          behavior: HitTestBehavior.translucent,
          onVerticalDragUpdate: (details) {
            var test = "test";
          },
          child: Container(height: 100, width: 100, color: Colors.red),
        ));
  }
}
Run Code Online (Sandbox Code Playgroud)

gesture dart flutter

0
推荐指数
1
解决办法
2253
查看次数