小编Tob*_*obi的帖子

与多个本地 flutter 和 dart 包共享 pubspec.yaml 包依赖项版本

我的 flutter 项目依赖于几个本地 flutter 和 dart 包来保持分离和干净。\n我的文件夹结构如下:

\n
main-flutter-project\n\xe2\x94\x82  lib\n|  test\n\xe2\x94\x82  pubspec.yaml\n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 local-packages\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dart-package-1\n\xe2\x94\x82   \xe2\x94\x82     pubspec.yaml\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 flutter-package-1\n\xe2\x94\x82   \xe2\x94\x82     pubspec.yaml\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 flutter-package-2\n\xe2\x94\x82         pubspec.yaml\n...\n
Run Code Online (Sandbox Code Playgroud)\n

每个本地包都是独立的,可以在不接触主项目的情况下进行维护。

\n

这种结构意味着我有很多pubspec.yaml文件,我必须在其中保持依赖项的更新。\n当我在 5 个包中使用 libaray 时bloc,当新版本发布时,bloc: ^7.2.1我必须分别更新每个文件中的版本。pubspec

\n

是否可以仅在其他pubspec.yaml文件引用的一个位置指定这些共享包依赖项版本?

\n

我已经在 Maven 中看到了这一点,您可以在其中指定一个属性<junit.version>4.12</junit.version>并从其他地方访问它<version>${junit.version}</version>

\n

dependency-management dart flutter pubspec

9
推荐指数
1
解决办法
2205
查看次数

Flutter:如何从简单的电子表格中读取数据?

我是新手,有个问题对专业人士来说应该不难回答。

我有一个5列10行的简单电子表格。现在,我有两个变量,分别代表列索引和行索引。

我只想从电子表格中读取相应的值,具体取决于所需的列和行号。

颤动可能吗?Flutter可以读取电子表格(例如.csv)并以某种方式获取信息吗?

我期待着一个答案,谢谢!

编辑:这是我到目前为止的代码,最初来自https://flutter.io/cookbook/persistence/reading-writing-files/。它打印

I / flutter(18817):“未来”的实例

但我不知道如何访问数据。

Future<String> readTable() async {
    try {
      final file = File("assets/res/table.txt");

      // Read the file
      String contents = await file.readAsString();
      print(contents);
      return contents;
    } catch (e) {
      // If we encounter an error, return 0
      return "";
    }
  }
Run Code Online (Sandbox Code Playgroud)

csv import spreadsheet dart flutter

6
推荐指数
1
解决办法
3113
查看次数

如何通过引用有状态小部件传递数据?我想更改有状态小部件内的变量并更新原始变量

我想将数据传递给有状态的小部件,更改小部件内的数据并在原始位置更新它。

我想避免使用全局变量,我想知道是否可以通过引用将变量传递给有状态小部件。

下面是一些示例代码,其中将数据传递给小部件。如果我使用滑块,计数器只会在小部件内部更新,而不是在主布局树中。

我很感激任何帮助。

import 'package:flutter/material.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() { …
Run Code Online (Sandbox Code Playgroud)

stateful pass-by-reference dart flutter

6
推荐指数
1
解决办法
2819
查看次数

如何访问纯dart包中的资源文件?

我编写了一个 dart 包,我的 flutter 应用程序正在使用它。在 dart 包内,我想将一些静态数据存储在 json 文件中,我想从 dart 包代码中读取这些数据。

但是我找不到直接从 dart 包访问资源文件的方法。使用File(path).readAsString()only 适用于 dart 控制台应用程序,使用rootBundleonly 适用于 flutter 包/应用程序。

我的问题是:如何直接从纯 dart 包访问存储在 dart 包资产中的这个文件?

在 flutter 包中,我只需通过 pubspec.yml 使文件可用,如下所示

flutter:
   assets:
      - lib/assets/b737.json
Run Code Online (Sandbox Code Playgroud)

但我找不到纯 dart 包的类似解决方案。

json assets file dart flutter

6
推荐指数
1
解决办法
1373
查看次数

flutter CustomPainter - 如何在线条路径中切出一个洞

我有一个CustomPaint画椭圆形的。

我想在特定位置切一个洞,但我还不知道它是如何工作的。

我试过:

canvas.drawPath(
      Path.combine(PathOperation.difference, ovalPath, holePath),
      ovalPaint,
    );
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题,而是给了我以下结果:

在此输入图像描述

但这就是我想要实现的目标: 在此输入图像描述

这个椭圆形只是一个例子,“真正的”定制油漆会变得更加复杂,我需要的不仅仅是一个切口。所以只画几条线并不是一个替代方案。我想首先定义路径,然后应用切口(甚至反向剪切)来获得孔。

那可能吗?

这是我所拥有的完整工作示例:

import 'package:flutter/material.dart';
import 'dart:math';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: const Scaffold(
        body: Center(
          child: OvalCustomPaint(),
        ),
      ),
    );
  }
}

class OvalCustomPaint extends StatelessWidget {
  const OvalCustomPaint({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) { …
Run Code Online (Sandbox Code Playgroud)

path custom-painting dart flutter

6
推荐指数
1
解决办法
2064
查看次数

Flutter:可重新排序且具有动画效果的ListView-有什么想法吗?

我知道Flutter对于ListViews有不同的方法:

  • 列表显示

  • 动画列表

  • ReorderableListView

但是还有可能组合所有不同的功能吗?

我需要一个ReorderableListView通过拖放来重新排序项目,同时能够添加和删除带有动画的项目。

我错过了什么吗?还是没有?数小时尝试的事情..

任何变通办法也表示赞赏。

listview list reorderlist dart flutter

5
推荐指数
2
解决办法
220
查看次数

Flutter Widget 测试:使用不包含 AutoRouter 的上下文请求 AutoRouter 操作

我在我的 flutter 项目中使用auto_route包并将我的应用程序包装在MaterialApp.router.

现在我想测试一个AutoRouter.of(context).pop();在一个地方调用的小部件。

我的测试如下所示:

 testWidgets('my widget test',
     (WidgetTester tester) async {
   await tester.pumpWidget(
     MaterialApp(
       home: MyWidget(),
     ),
   );
 });
Run Code Online (Sandbox Code Playgroud)

可以理解的是,泵送小部件会抛出以下错误消息:

AutoRouter operation requested with a context that does not include an AutoRouter. The context used to retrieve the Router must be that of a widget that is a descendant of an AutoRouter widget.

所以我需要AutoRouter在测试中在我的小部件上方提供一个实例。

我的小部件也使用了MediaQuery,我需要将测试的小部件包装在里面MaterialApp,以避免由于MediaQuery.of(context)查找而引发的错误。

我想我需要做一些类似的事情AutoRouter,但还没有弄清楚。有类似的东西吗MockAutoRouter

很高兴获得任何帮助。

testing dart flutter

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

颤振时间计算

在我的 flutter 应用程序中,用户选择一个时间,我需要简单地添加一些小时和分钟以显示结果。这很容易吗?不幸的是,似乎没有像 TimeOfDay.add() 这样的函数。

有任何想法吗?

谢谢!

add timeofday flutter calculation

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