Questions tagged «dart»

Dart是用于构建Web和移动应用程序的基于类的静态(和强烈)类型的编程语言。Dart编译为现代JavaScript以在浏览器中运行,并编译为本机代码以在Android和iOS等移动平台上运行。Dart还可以在命令行上运行脚本和服务器端应用程序。

14
Flutter中有状态和无状态小部件之间有什么关系?
有状态窗口小部件定义为在其生存期内更改其状态的任何窗口小部件。但是StatelessWidget,将aStatefulWidget作为其子级之一是非常普遍的做法。StatelessWidget如果将其StatefulWidget作为子级之一,是否不会成为有状态的? 我试图寻找到的文件作为代码的一部分StatelessWidget,但无法弄清楚如何StatelessWidget可以Statefulwidget作为它的孩子,但仍保持StatelessWidget。 Flutter中有状态和无状态小部件之间的关系和区别是什么?


15
InkWell不显示涟漪效应
轻敲容器会触发onTap()处理程序,但不会显示任何墨水飞溅效果。 class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text(widget.title), ), body: new Center( child: new InkWell( onTap: (){print("tapped");}, child: new Container( width: 100.0, height: 100.0, color: Colors.orange, ), ), ), ); } } 我试图把InkWell里面的东西也Container一样,但徒劳无功。

4
Flutter:如何正确使用继承的窗口小部件?
使用InheritedWidget的正确方法是什么?到目前为止,我了解到它为您提供了沿Widget树向下传播数据的机会。在极端情况下,如果您将其作为RootWidget放置,则可以从所有Route的树中的所有Widget进行访问,这很好,因为以某种方式我必须使Widget可以访问ViewModel / Model,而不必诉诸于globals或Singletons。 但是InheritedWidget是不可变的,那么如何更新它?更重要的是,如何触发我的有状态小部件来重建其子树? 不幸的是,这里的文档非常不清楚,与许多人讨论之后,似乎没人真正知道使用它的正确方法。 我引用了Brian Egan的话: 是的,我将其视为在树上传播数据的一种方式。我从API文档中发现了令人困惑的地方: “以这种方式引用继承的小部件时,当继承的小部件自身更改状态时,将导致使用者重建。” 当我第一次阅读这篇文章时,我想: 我可以在InheritedWidget中填充一些数据,并在以后对其进行突变。当发生这种突变时,它将重建引用我的InheritedWidget的所有Widget: 为了使InheritedWidget的状态发生变化,您需要将其包装在StatefulWidget中,然后实际上使StatefulWidget的状态发生变化,然后将此数据传递给InheritedWidget,该InheritedWidget将数据传递给所有子项。但是,在那种情况下,似乎要重建StatefulWidget之下的整个树,而不仅仅是引用InheritedWidget的Widget。那是对的吗?还是以某种方式知道如果updateShouldNotify返回false时如何跳过引用InheritedWidget的Widget?

6
如何在Dart中执行运行时类型检查?
Dart规范指出: 修饰的类型信息反映了运行时对象的类型,并且始终可以通过动态类型检查构造(其他语言中的instanceOf,casts,typecase等类似物)查询。 听起来不错,但没有instanceof类似运算符。那么我们如何在Dart中执行运行时类型检查?有可能吗?


7
如何“休眠” Dart程序
我喜欢在Dart应用程序中模拟一个异步Web服务调用以进行测试。为了模拟这些模拟调用响应的随机性(可能是无序的),我想对模拟程序进行编程,使其在返回“未来”之前等待(睡眠)一段时间。 我怎样才能做到这一点?


30
Flutter和google_sign_in插件:PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiException:10:,null)
凭证对话框(Google表单)已成功打开,但是在填写凭证后出现此错误。我遵循了这里的指示。创建了一个Firebase项目,并从Google API控制台启用了Google Drive API(这是我现在需要的)。 代码抛出异常: final GoogleSignIn _googleSignIn = GoogleSignIn( scopes: [ 'https://www.googleapis.com/auth/drive', ], ); await _googleSignIn.signIn(); 那是堆栈跟踪: E/flutter ( 5068): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception: E/flutter ( 5068): PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) E/flutter ( 5068): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:551:7) E/flutter ( 5068): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:292:18) E/flutter ( 5068): <asynchronous …


9
枚举或映射Dart中具有索引和值的列表
在dart中,有任何等同于常见的东西: enumerate(List) -> Iterator((index, value) => f) or List.enumerate() -> Iterator((index, value) => f) or List.map() -> Iterator((index, value) => f) 看来这是最简单的方法,但仍然不存在此功能似乎很奇怪。 Iterable<int>.generate(list.length).forEach( (index) => { newList.add(list[index], index) }); 编辑: 感谢@ hemanth-raj,我得以找到所需的解决方案。我将把它放在这里,供需要执行类似操作的任何人使用。 List<Widget> _buildWidgets(List<Object> list) { return list .asMap() .map((index, value) => MapEntry(index, _buildWidget(index, value))) .values .toList(); } 或者,您可以创建一个同步生成器函数以返回一个可迭代 Iterable<MapEntry<int, …
99 dart  flutter 


22
Flutter插件未安装错误;跑扑医生时
我Flutter SDK在LinuxUbuntu 16.4系统上进行配置。运行扑医生时,为什么会出现以下错误?我已经指定了PATHS为flutter和dart在.bashrc但是当我跑我得到这个错误flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel beta, v0.5.1, on Linux, locale en_US.UTF-8) [✓] Android toolchain - develop for Android devices (Android SDK 28.0.2) [✓] Android Studio (version 3.1) ✗ Flutter plugin not installed; this adds Flutter specific functionality. ✗ …

7
Flutter SVG渲染
我尝试将带有SVG源的图像添加到我的flutter应用程序中。 new AssetImage("assets/images/candle.svg")) 但是我没有任何视觉反馈。如何在Flutter中渲染SVG图片?
90 dart  flutter 

16
检查Flutter应用程序上是否有Internet连接可用
我有一个网络电话要执行。但是在此之前,我需要检查设备是否具有互联网连接。 这是我到目前为止所做的: var connectivityResult = new Connectivity().checkConnectivity();// User defined class if (connectivityResult == ConnectivityResult.mobile || connectivityResult == ConnectivityResult.wifi) {*/ this.getData(); } else { neverSatisfied(); } 上面的方法不起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.