小编rch*_*hkm的帖子

BuildContext在Flutter中做了什么?

BuildContext什么,我们从中得到什么信息?

https://docs.flutter.io/flutter/widgets/BuildContext-class.html目前尚不清楚.

https://flutter.io/widgets-intro/#basic-widgets在该术语的第9个实例上BuildContext有一个例子,但目前尚不清楚它是如何被使用的.它是一组更大的代码丢失了我的一部分,所以我很难理解它是什么BuildContext.

有人可以用简单/非常基本的术语解释这个吗?

flutter

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

getter和setter如何在Dart中更改属性?

我在Dart中苦苦寻求getter和setter的概念,我读的越多,我就无法理解其根本目的.以下面的代码为例:

main() {
    Car car = new Car();
    car.doors = 44;
    print(car.doors);  // 44
}
class Car {
    int doors = 4;
}
Run Code Online (Sandbox Code Playgroud)

后来,我决定将"门"变成一个私有变量,所以我做了以下几点:

main() {
    Car car = new Car();
    car.doors = 44;
    print(car.doors);  // 44
}
class Car {
    int _doors = 4;
    int get doors => _doors;
    set doors(int numberOfDoors) => _doors = numberOfDoors;
}
Run Code Online (Sandbox Code Playgroud)

根据代码,_doors现在是一个私有变量,因此我无法在main()中访问它.然而,通过操纵doors,我可以_doors通过使其成为私有变量来间接地改变我认为我想要首先防止的值.那么,如果您仍然可以间接操纵它,那么将以前的公共变量变为私有变量的目的是什么?而且,getter和setter如何改变这些变量的属性呢?我试图理解基本概念,因为没有它,我不明白如何或为什么使用getter和setter.

dart

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

何时使用Dart中的部分/部分与导入/导出?

在Dart中使用库时,我并不完全理解part/ part ofimport/ 之间的区别export.例如:

one.dart:
library one;
part "two.dart";
Class One {
};
Run Code Online (Sandbox Code Playgroud)

two.dart:
part of one;
import 'somefile.dart';
Class Two {
}
Run Code Online (Sandbox Code Playgroud)

library one;
import 'two.dart';
Class One {
}
Run Code Online (Sandbox Code Playgroud)

library two;
import 'somefile.dart';
export 'somefile.dart';
Class Two {
}
Run Code Online (Sandbox Code Playgroud)

两种情况似乎都做同样的事情.什么时候最好使用partpart of,而不是import?以及是否有场景中import是行不通的,但partpart of不会?

dart

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

如何在Dart中打印美元符号$

我需要在变量之前在Dart中打印一个美元符号.例如:

void main()
{
  int dollars=42;
  print("I have $dollars."); // I have 42.
}
Run Code Online (Sandbox Code Playgroud)

我希望输出为:我有42美元.我怎样才能做到这一点?谢谢.

variables syntax dart

18
推荐指数
2
解决办法
6108
查看次数

如何使用image.file加载图像

我似乎无法简单地将硬盘中的图像加载到屏幕上.Image.net工作似乎很简单.但我无法弄清楚如何使用Image或Image.file.图像似乎需要一个流,所以我认为这不是我想要的.

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

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
    File file = new File("Someimage.jpeg");
    @override
    Widget build(BuildContext context) {
        return new MaterialApp(
            home: new Image.file(file),  //doesn't work, but no errors
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

我将someimage添加到pubspec.yaml文件中,但这也不起作用:

assets:
    - Someimage.jpeg
Run Code Online (Sandbox Code Playgroud)

有人能给我一个如何做到这一点的例子吗?谢谢.

dart flutter

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

在Dart中等待和倾听之间的区别

我正在尝试创建一个Web服务器流.这是代码:

import 'dart:io';

main() async {
  HttpServer requestServer = await HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8000);

requestServer.listen((request) {   //comment out this or the await for to work
  request.response
    ..write("This is a listen stream")
    ..close();
});

  await for (HttpRequest request in requestServer) {
  request.response
    ..write("This is an await for stream")
    ..close();
  }
}
Run Code Online (Sandbox Code Playgroud)

listen和await之间有什么区别?它们都不能同时工作.你需要注释掉一个或另一个才能工作,但这里的功能似乎没有区别.是否存在差异的情况,何时应该使用另一个?

stream listen async-await dart

7
推荐指数
3
解决办法
1899
查看次数

通过 Dart 中的循环写入文件

我正在尝试将一系列字符串写入文件 Letters.txt。

 import "dart:io";

 main() {
   List letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"];
   File file = new File("Letters.txt");
   for (int i = 0; i < 10; i++) {
     file.writeAsString("${letters[i]}", mode: FileMode.APPEND);
   }
 }
Run Code Online (Sandbox Code Playgroud)

打开文件时Letters.txt,它应该显示“abcdefghij”,而是显示“j”。关于我做错了什么的任何想法?我试过FileMode: WRITE, WRITE_ONLY_APPEND, 和WRITE_ONLY,但这些都没有奏效。

dart dart-io

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

Flutter中的元素是什么?

我很难理解Flutter中的元素是什么。在文档中:“在树中特定位置的窗口小部件的实例化”。。。。我想现在我要问,树是什么。

起初,我以为树是指小部件的状态,但是StatelessWidget也有createElement,所以情况似乎并非如此。然后,我以为树指的是父母/孩子的关系,但我不清楚。最后,听起来像元素在那个特定的时间和位置有点像小部件的快照,但是相关的方法似乎并不能反映这一点。我在附近吗?

flutter

4
推荐指数
3
解决办法
750
查看次数

在 Dart 中使用 Sink 和 Pipe 与 Streams 有什么区别?

import "dart:async";
import "dart:html";

void main() async {
  InputElement addStream = querySelector("#addstream");

  Stream<int> aStream = _someStream();
  StreamController<int> sc = StreamController();

  sc.stream.listen((e) => print(e));

  addStream.onClick.listen((e) {
  sc.sink.addStream(aStream);  // streamcontroller brings in stream through the sink
  // aStream.pipe(sc);   // stream going into streamcontroller through the sink
  });
}
Run Code Online (Sandbox Code Playgroud)

上面的代码中,sc.sink.addStream(aStream)好像是用sink方法添加aStreamStreamControllersc。在此之下,aStream用于pipe添加到StreamController sc.

这两种方法似乎都在做同样的事情。在我看来,使用一种方法而不是另一种方法就是一种风格。如果您使用的是Streampipe则将其添加到StreamController. 如果您正在使用 a StreamController,请将 a下沉Stream到它。使用一个与另一个有什么特殊的理由吗?

pipe stream dart sink

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

标签 统计

dart ×7

flutter ×3

stream ×2

async-await ×1

dart-io ×1

listen ×1

pipe ×1

sink ×1

syntax ×1

variables ×1