小编Bas*_*ous的帖子

如何在flutter中从FutureProvider获取数据

我正在尝试在使用 Provider 管理的 Flutter 应用程序中实现本地数据库支持,现在我想让数据检索遵循状态管理模式,但我一直没有做到。

我试图制作一个传统的 Provider 来实现这一点,但该应用程序陷入了对数据库的请求循环中,所以经过一番搜索我找到了 FutureProvider,但我找不到如何从正在加载的数据中获取快照

class _ReceiptsRouteState extends State<ReceiptsRoute> {
  List<Receipt> receipts = [];

  @override
  Widget build(BuildContext context) {
    return FutureProvider(
      initialData: List(),
      builder: (_){
        return DBProvider().receipts().then((result) {
          receipts = result;
        });
      },
      child: Scaffold(
        appBar: AppBar(
          title: Text(AppLocalizations.of(context).history),
        ),
        body: Container(
          child: ListView.builder(
            itemBuilder: (context, position) {
              final item = receipts[position];
              return ListTile(
                title: Text(item.date),
              );
            },
          ),
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我的应用程序正在按我想要的方式运行,但不是按照它应该如何运行,我使用 FutureBuilder 直接从数据库中获取数据,但我知道它应该通过提供程序来,所以我想使它正确

dart flutter flutter-provider

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

Flutter - 谷歌地图在调整大小时崩溃

在我的用例中,我需要确保我的地图可以动态调整大小而不会崩溃,您可能建议使用 resizeToAvoidBottomPadding,但我的问题不止于此,例如,如果我使用 facebook messanger 聊天头并打开它,我的应用程序会崩溃键盘(这使应用程序调整大小迫使地图调整大小因此崩溃)

以下代码位于子路由内(位于包含底部标签栏的路由内,因此以下代码位于该栏的按钮之一内)

@override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        GoogleMap(
          onMapCreated: _onMapCreated,
          mapType: MapType.normal,
          initialCameraPosition: CameraPosition(
            target: LatLng(30, 40),
            zoom: 11,
          ),
          onCameraMove: (pos) {
            setState(() {
              // do something
            });
          },
          onCameraIdle: () {
            setState(() {
              // do something
            });
          },
        ),
        TextField(),
      ],
    );
  }
Run Code Online (Sandbox Code Playgroud)

编辑:这是我在控制台中收到的错误消息:

E/flutter (16068): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.AbstractMethodError: abstract method "void io.flutter.plugin.platform.PlatformView.onInputConnectionLocked()"
E/flutter (16068):  at io.flutter.plugin.platform.VirtualDisplayController.onInputConnectionLocked(VirtualDisplayController.java:166)
E/flutter (16068):  at io.flutter.plugin.platform.PlatformViewsController.lockInputConnection(PlatformViewsController.java:370)
E/flutter (16068):  at io.flutter.plugin.platform.PlatformViewsController.access$1000(PlatformViewsController.java:36)
E/flutter (16068):  at io.flutter.plugin.platform.PlatformViewsController$1.resizePlatformView(PlatformViewsController.java:165)
E/flutter (16068): …
Run Code Online (Sandbox Code Playgroud)

google-maps dart flutter flutter-layout

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

使用 C 语言的自定义 shell 中的箭头键控制

我正在尝试使箭头键在单行(左+右)中的字符之间以及自定义外壳(学期项目)的历史命令(上+下)之间移动。

此时,当击中其中一个箭头时 ^[[A, ^[[B, ^[[C 或 ^[[D 显示出来,按下回车后,我意识到其中一个被击中了:

char a = getchar();

if (a == '\033') {
    getchar();
    int ch2 = getchar();
    switch(ch2){
        case 'A': 
            printf("UP\n"); 
            break;
        case 'B': 
            printf("DOWN\n"); 
            break;
        case 'D': 
            printf("LEFT\n"); 
            break;
        case 'C': 
            printf("RIGHT\n"); 
            break;
        default:
            printf("SOME OTHER SCROLL KEY PRESSED: %d %d\n", a, ch2); 
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想得到的是,一旦我击中其中一个箭头,动作就会发生而不会显示任何内容。

c shell getchar arrow-keys

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

如何从 Flutter 桌面应用程序打开 CMD

我有这个应用程序的想法,但它在很大程度上取决于 CMD,所以我想知道我是否可以从 Flutter 桌面应用程序中打开任何其他应用程序(例如 CMD)。

我知道在 Java 中它可以使用 exec() 来完成,但是在 dart/flutter 中它有什么等价物吗?

cmd exec dart flutter

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