小编Kri*_* CN的帖子

如何从Dart中的函数返回Future或任何其他类型

我需要处理我的一个Form条目小部件上的后退按钮按下。这就是我实现WillPopScope的onWillPop方法的方式:

Future<bool> _onWillPop() {
    if (changed) {
       return showDialog(
        context: context,
        builder: (context) => new AlertDialog(
              title: new Text('Save'),
              content: new Text("Do you want to save the changes?"),
              actions: <Widget>[
                new FlatButton(
                  onPressed: () => Navigator.of(context).pop(true),
                  child: new Text('No'),
                ),
                new FlatButton(
                  onPressed: () {
                    Navigator.of(context).pop(false);
                    saveMeeting();
                  },
                  child: new Text('Yes'),
                ),
              ],
            ),
      ) ??
      false;
    } else {
      print("No changes");
      Navigator.of(context).pop(true);
      //return some future null from here ????
    }
}
Run Code Online (Sandbox Code Playgroud)

这部分代码正常工作,但出现异常:

[ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/flutter ( 7374): Failed …
Run Code Online (Sandbox Code Playgroud)

dart flutter

4
推荐指数
2
解决办法
7888
查看次数

Flutter:如何在文本字段文本中间插入文本

我有一个颤动的文本字段和一个表情符号选择器按钮。在选择表情符号时,我需要将其插入当前光标位置。我怎样才能做到这一点?目前使用TextEditingController我只能附加表情符号。我无法获得当前的光标偏移量。

emojiPicker() {
    return EmojiPicker(
      rows: 3,
      columns: 7,
      recommendKeywords: null,
      indicatorColor: flujoAccentColor,
      onEmojiSelected: (emoji, category) {
        print(emoji);
        _messageInputController.text =
            _messageInputController.text + emoji.emoji;
     }
    );
  }
Run Code Online (Sandbox Code Playgroud)

dart flutter

4
推荐指数
2
解决办法
3174
查看次数

如何在flutter上实现事件侦听器或委托

I have a main dart class in which the app bar is located and the app bar contains a refresh button. I'm using a navigation drawer to populate two other views f1 and f2.

From my main.dart how can I pass the refresh button clicks to the sub fragment kind of f1.dart so that I can refresh my contents on f1.dart

// State of Main
class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      drawer: Drawer(
        child: …
Run Code Online (Sandbox Code Playgroud)

events delegates dart flutter

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

Flutter Sembast 插入或更新

如果没有带有 id else 的记录sembast在 flutter 中使用库更新,如何实现插入?我尝试了以下。

Future updateOrInsert(User user) async {
    final result = await update(user);
    if(result == 0){
      insert(user);
    }
 }

 Future update(User user) async {
    final finder = Finder(filter: Filter.byKey(user.id));
    final result = await _userStore.update(await _db, user.toMap(), finder: finder);
    return result;
 }

 Future insert(User user) async {
    await _userStore.add(await _db, user.toMap());
 }
Run Code Online (Sandbox Code Playgroud)

它工作正常。这是正确的解决方案还是有其他直接的 sembast API 可用?

塞巴斯特

dart flutter

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

Flutter:在使用 Provider 构建期间调用 setState() 或 markNeedsBuild()

ChangeNotifier我正在从一个方法调用其中一个函数initState(),并且notifyListener()该函数内部的调用抛出 setState() or markNeedsBuild() called during build.异常

void initState(){
 Provider.of<MessengerRepository>(context, listen: false).setUnreadCount(0);
 super.initState();
}
Run Code Online (Sandbox Code Playgroud)
class MessengerRepository with ChangeNotifier {
  int unreadCount;
  void setUnreadCount(int value){
     unreadCount = value;
     notifyListeners();
}
Run Code Online (Sandbox Code Playgroud)

我需要调用notifyListener()内部setUnreadCount(),因为我setUnreadCount()在执行过程中在多个地方调用该函数。所以无法删除notifyListener()里面唯一的initState()

使用provider4.0.4版本

flutter flutter-provider

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

Flutter:如何在 gradle 脚本中使用 dart-define 变量

在为 flutter 应用程序创建集成测试时,如何dart-define通过 gradle 脚本传递变量。

从Flutter文档来看,为了构建一个仪器测试apk(然后将其上传到Firebase测试实验室并进行测试),我们需要直接使用gradlew这样的命令:

pushd android
flutter build apk
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug -Ptarget=integration_test/<name>_test.dart
popd

Run Code Online (Sandbox Code Playgroud)

这里没有指定如何将--dart-define我们正在使用的标志内容从 flutter 端传递flutter rungradlew命令。

flutter flutter-integration-test

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

如何将 React js npm 包与 React Native 一起使用

我需要在 Android 和 iOS 上使用轮式选择器(可作为 iOS 的默认选择器)。我正在使用 expo,因此我无法使用任何可用的本机软件包。

是否可以将纯 JavaScript 包与 React Native 一起使用?

我尝试了这个库,但出现错误:

找不到自我

导入时。

真的可以使用这样的库吗?或者我还缺少什么吗?

npm reactjs react-native expo

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

如何用抖动实现拖放

如何在屏幕上颤动地移动容器或任何其他小部件并在某些位置放置?

我找到了颤动的小部件DraggableDragTarget。如何使用它们来实现拖放?

flutter

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

如何在同一个文本小部件中制作不同的样式?

如何对显示文本的不同部分应用不同的样式。如何在颤振中做到这一点?

例子:

你好世界

dart flutter

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

是否可以在 C++ 中不创建窗口的情况下创建消息循环

我正在使用一些蓝牙库,对于一些蓝牙回调,有必要使用 Windows 消息循环。但是根据我的要求,我需要创建一个没有任何 GUI 的普通 C++ 程序。是否可以在没有窗口的情况下创建消息循环?

main(){
    Discovery disc;
    disc.startDiscovery();
}


Discovery::startDiscovery(){
  __hook(&CallBackFromLibrary::OnDiscoveryStarted, &obj, &Discovery::OnDiscoveryStarted);
  __hook(&CallBackFromLibrary::OnDiscoveryComplete, &obj, &Discovery::OnDiscoveryComplete);  
}


apiObject.discoverBluetoothDevices();
Run Code Online (Sandbox Code Playgroud)

在此示例代码中,我应该在调用 apiObject.discoverBluetoothDevices() 后接收作为 OnDiscoveryStarted 和 OnDiscoveryComplete 的回调。

由于他们使用消息循环进行回调,因此我只在 GUI 应用程序上获得了回调。如何使用消息循环接收回调,因为库文档说需要消息循环。

c++ windows-messages message-loop visual-c++

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

Flutter:将整数列表转换为一个班轮中的字符串列表

我试图将 JSON 解析为我的对象。json 的一个字段包含 [1,2,3,4],它是一个 int 列表。但是我的对象字段包含List<String> members;该字段。我怎样才能转换这个。

通常为了将 ["1","2","3"] 转换为 List,我曾经使用json['members'].cast<String>().

除了使用 map 之外,是否有类似的一种衬垫可用?

json dart flutter

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

Dart:如何从多个完成者中创造未来

我想用 dart/flutter 的多个完成者创造一个未来。

Future getAndWriteToDB(conversations){
    List<Completer> _completerList = List();

    for (var i = 0; i < conversations.length; i++) {
      final conversation = conversations[i];
      _completerList.add(Completer());
      SocketService()
          .listenForEvent('mylistenerkey')
          .then((data) {
         _messagesDao.insertMessages(messages).then((result) {
            if (result == false) {
              print("writing to db for message failed");
            } else {
              _completerList[i].complete(true);
            }
          });
        }
      });
    }


    return {{ wait for these completers complete event }}
}
Run Code Online (Sandbox Code Playgroud)

SocketService().listenForEvent每当该活动可用时,我都会接到电话。我想将所有对话写入数据库,然后一旦所有这些都完成,就可以了解该状态。所以我需要根据这些完成者列表等待或创造未来。我怎样才能实现这个目标?

socket.io dart flutter

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