flutter 应用程序名称由包名称显示,AppBar标题显示在主页的AppBar上,因此标题MaterialApp(title: 'Rectangle App',);
用于在flutter项目中显示标题.
import'package:flutter/material.dart';
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Rectangle App',
home: Scaffold(
appBar: AppBar(
title: Text('Rectangle App Home Page'),
),
body: HelloRectangle(),
),
);
}
}
Run Code Online (Sandbox Code Playgroud) 在理解制约文章是理解的布局是如何工作非常有用的。但是,我无法创建按照那里解释的方式工作的自定义布局。
文章说size是向上流动的,首先我们得到child的size,然后我们可以根据children的size来决定我们自己的size。
这似乎CustomSingleChildLayout
是与一个孩子一起创建自定义布局的方法。在里面,根据我上面提到的文章,我想得到我孩子的尺寸,然后根据这个决定我自己的尺寸。然而,这似乎是不可能的。getSize()
方法是用约束调用的,因此我应该根据我从上面收到的约束来决定我的小部件大小。我能够getPositionForChild()
在getSize()
. 此时触发重新布局是有意义的,但似乎我不允许从布局系统调用的函数中执行此操作。
所以,问题是,实现自定义布局的最佳方法是什么,约束的布局行为向下流动,尺寸向上流动,如理解约束中所述?
编辑:这是一些代码来解释我真正想要的。
这是我想要的外观。在这里,我手动提供蓝色方块的宽度和高度。我不想那样做。我希望孩子的大小来确定正方形的大小。我希望大小从文本向上流动,蓝色方块应决定边长为max(width, height)
.
https://codepen.io/gazialankus/pen/abdKyVR
import 'package:flutter/material.dart';
class AppRoot extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo', // Appears in app switcher
theme: ThemeData(
primaryColor: Colors.grey.shade300,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyPage(),
);
}
}
class MyPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
color: Colors.yellow,
child: SizedBox(
width: 180, …
Run Code Online (Sandbox Code Playgroud) 我有一个 React Native 项目。我能够像这样构建 iOS 和 Android 版本:
fastlane android build
fastlane ios build
Run Code Online (Sandbox Code Playgroud)
然而,这就是我想做的,所以 iOS 和 Android 都构建了。
fastlane all build
Run Code Online (Sandbox Code Playgroud)
这是我的 Fastfile 的简化版本:
default_platform(:android)
platform :android do
desc "Simply build a release apk"
lane :build do |options|
gradle(
project_dir: "android",
task: "clean assemble",
build_type: "Release",
)
end
end
platform :ios do
desc "Simply build a release ipa"
lane :build do |options|
build_app(workspace: "ios/myproject.xcworkspace")
end
end
Run Code Online (Sandbox Code Playgroud)
有人告诉我这都是 Ruby 代码,我应该能够做任何我想做的事情。所以,我希望“all”同时调用 Android 和 iOS。但是,我不懂 Ruby,所以非常感谢您的帮助。
我有一个List<String> stringValues;
实际上是引号中的数字.我想将此列表转换为List<int> intValues
.这是一种优雅的方式吗?
有list.forEach()
没有返回任何东西,有iterable.expand()
每个元素返回一个iterable,iterable.fold()
只返回整个列表的一个元素.我找不到允许我通过闭包传递每个元素并返回另一个具有闭包返回值的列表的东西.
我有两个功能
callee() async {
// do something that takes some time
}
caller () async {
await callee();
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,caller()
等待直到callee()
完成.我不希望这样.我想caller()
在调用后立即完成callee()
.callee()
可以在将来完成,我不在乎.我只是想像一个线程一样启动它然后忘记它.
这可能吗?
I do AngularDart development on Windows 10. I'm getting strange behavior with webdev recently. I have to run webdev like this:
C:\Users\galankus>C:\tools\dart-sdk\bin\pub.bat global run webdev
A tool to develop Dart web projects.
Usage: webdev <command> [arguments]
Global options:
-h, --help Print this usage information.
Available commands:
build Run builders to build a package.
help Display help information for webdev.
serve Run a local web development server and a file system watcher that re-builds on changes.
Run "webdev help <command>" for …
Run Code Online (Sandbox Code Playgroud) 我喜欢await for
Dart 中的构造。
如何使用常规 for 循环实现类似的功能?
就像是
// beware! fictional code.
var element = stream.next();
for(; stream.isEndReached(); element = stream.next()) {
// use element here
}
// or probably it will be like this, right?
var element = await stream.next();
for(; await stream.isEndReached(); element = await stream.next()) {
// use element here
}
Run Code Online (Sandbox Code Playgroud)
但我不知道用什么函数来代替next()
和isEndReached()
这里。如果您能给我一个与 完全一样的完整示例async for
,那就太好了。
编辑:这是我要求这样做的实际原因:我想做这样的事情:
if (!stream.isEndReached()) {
var a = await stream.next();
// use a
}
if (!stream.isEndReached()) { …
Run Code Online (Sandbox Code Playgroud) 在 Flutter 布局系统中,我认为将 andFlexible
和放在Expanded
a 中Column
将使 成为Flexible
其子级的大小,并Expanded
占据整个剩余空间。但是,Expanded
不会填满所有剩余空间,并在其后面留下一些空白空间。
这是我想做的:
+-----------------------------+
| Flexible, decides own size. |
+-----------------------------+
| Expanded, fills up the rest |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
然而,结果却是这样的:
+-----------------------------+
| Flexible, decides own size. |
+-----------------------------+
| Expanded, takes up only |
| some of the remaining space |
| looks like about 50% …
Run Code Online (Sandbox Code Playgroud) 我在Windows 10上,我正在学习本教程:https://www.dartlang.org/docs/tutorials/cmdline/
但是,它似乎无法按照以下输出使用包.我错过了什么,或者这是Windows上的一个已知问题?我使用choco安装了飞镖,它将dart的位置添加到我的路径中.
我能够通过复制WebStorm为某个项目创建并将其粘贴到此dart文件旁边的包交汇点(符号链接或快捷方式?)来使其工作.但我不认为这是我们应该做的.
我们如何确保Windows中的dart命令行应用程序可以使用包?我在上面给出的教程链接中缺少什么?
C:\Development\Dartish\tmp>dir
Volume in drive C is HDD
Volume Serial Number is DC07-D177
Directory of C:\Development\Dartish\tmp
06/01/2016 03:28 PM <DIR> .
06/01/2016 03:28 PM <DIR> ..
06/01/2016 03:33 PM 2,063 dcat.dart
1 File(s) 2,063 bytes
2 Dir(s) 74,771,554,304 bytes free
C:\Development\Dartish\tmp>dart dcat.dart -n quotes.txt
Unhandled exception:
Could not import "package:args/args.dart" from "file:///C:/Development/Dartish/tmp/dcat.dart": Could not resolve a package location for base at file:///C:/Development/Dartish/tmp/dcat.dart
#0 _asyncLoadErrorCallback (dart:_builtin:162)
#1 _asyncLoadError (dart:_builtin:584)
#2 _loadPackage (dart:_builtin:625)
#3 _loadPackage.<anonymous …
Run Code Online (Sandbox Code Playgroud) 是否有 Dart 点差运算符和空感知运算符的组合可以做到这一点?
[
1,
...twoOrNull() // this will be inserted only if it's null. something else than the ... operator will be here.
3,
]
Run Code Online (Sandbox Code Playgroud)
所以列表将是[1, 2, 3]
或[1, 3]
。我想twoOrNull()
可以返回[2]
or []
,但如果它可以返回2
or就好了null
。
这可能不引入变量吗?
dart ×8
flutter ×3
async-await ×2
layout ×2
angular-dart ×1
command-line ×1
fastlane ×1
iterable ×1
list ×1
packages ×1
ruby ×1