Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
6655074b
Commit
6655074b
authored
Jul 28, 2017
by
Ian Hickson
Committed by
GitHub
Jul 28, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix documentation based on dartdoc's warnings (#11428)
parent
58a28a29
Changes
27
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
232 additions
and
150 deletions
+232
-150
dartdoc.dart
dev/tools/dartdoc.dart
+37
-10
java_and_objc_doc.dart
dev/tools/java_and_objc_doc.dart
+5
-10
foundation.dart
packages/flutter/lib/foundation.dart
+2
-0
colors.dart
packages/flutter/lib/src/cupertino/colors.dart
+3
-2
nav_bar.dart
packages/flutter/lib/src/cupertino/nav_bar.dart
+37
-30
tree_diagnostics_mixin.dart
...es/flutter/lib/src/foundation/tree_diagnostics_mixin.dart
+52
-50
feedback.dart
packages/flutter/lib/src/material/feedback.dart
+6
-4
tabs.dart
packages/flutter/lib/src/material/tabs.dart
+4
-1
colors.dart
packages/flutter/lib/src/painting/colors.dart
+1
-1
edge_insets.dart
packages/flutter/lib/src/painting/edge_insets.dart
+1
-1
flutter_logo.dart
packages/flutter/lib/src/painting/flutter_logo.dart
+6
-5
text_span.dart
packages/flutter/lib/src/painting/text_span.dart
+1
-1
text_style.dart
packages/flutter/lib/src/painting/text_style.dart
+5
-5
box.dart
packages/flutter/lib/src/rendering/box.dart
+1
-1
layer.dart
packages/flutter/lib/src/rendering/layer.dart
+2
-2
object.dart
packages/flutter/lib/src/rendering/object.dart
+6
-6
image_stream.dart
packages/flutter/lib/src/services/image_stream.dart
+1
-1
framework.dart
packages/flutter/lib/src/widgets/framework.dart
+2
-2
gesture_detector.dart
packages/flutter/lib/src/widgets/gesture_detector.dart
+1
-1
page_view.dart
packages/flutter/lib/src/widgets/page_view.dart
+1
-1
scroll_controller.dart
packages/flutter/lib/src/widgets/scroll_controller.dart
+4
-4
scroll_position.dart
packages/flutter/lib/src/widgets/scroll_position.dart
+2
-2
scroll_view.dart
packages/flutter/lib/src/widgets/scroll_view.dart
+6
-6
scrollable.dart
packages/flutter/lib/src/widgets/scrollable.dart
+1
-1
nav_bar_test.dart
packages/flutter/test/cupertino/nav_bar_test.dart
+42
-0
flutter_driver.dart
packages/flutter_driver/lib/flutter_driver.dart
+1
-2
render_tree.dart
packages/flutter_driver/lib/src/render_tree.dart
+2
-1
No files found.
dev/tools/dartdoc.dart
View file @
6655074b
...
@@ -10,6 +10,12 @@ import 'package:intl/intl.dart';
...
@@ -10,6 +10,12 @@ import 'package:intl/intl.dart';
import
'package:path/path.dart'
as
path
;
import
'package:path/path.dart'
as
path
;
import
'update_versions.dart'
;
import
'update_versions.dart'
;
/// Whether to report all error messages (true) or attempt to filter out some
/// known false positives (false).
///
/// Set this to false locally if you want to address Flutter-specific issues.
const
bool
kVerbose
=
true
;
// please leave this as true on Travis
const
String
kDocRoot
=
'dev/docs/doc'
;
const
String
kDocRoot
=
'dev/docs/doc'
;
/// This script expects to run with the cwd as the root of the flutter repo. It
/// This script expects to run with the cwd as the root of the flutter repo. It
...
@@ -68,8 +74,8 @@ dependencies:
...
@@ -68,8 +74,8 @@ dependencies:
'FLUTTER_ROOT'
:
Directory
.
current
.
path
,
'FLUTTER_ROOT'
:
Directory
.
current
.
path
,
},
},
);
);
printStream
(
process
.
stdout
);
printStream
(
process
.
stdout
,
prefix:
'pub:stdout: '
);
printStream
(
process
.
stderr
);
printStream
(
process
.
stderr
,
prefix:
'pub:stderr: '
);
final
int
code
=
await
process
.
exitCode
;
final
int
code
=
await
process
.
exitCode
;
if
(
code
!=
0
)
if
(
code
!=
0
)
exit
(
code
);
exit
(
code
);
...
@@ -94,8 +100,12 @@ dependencies:
...
@@ -94,8 +100,12 @@ dependencies:
'--favicon=favicon.ico'
,
'--favicon=favicon.ico'
,
'--use-categories'
,
'--use-categories'
,
'--category-order'
,
'flutter,Dart Core,flutter_test,flutter_driver'
,
'--category-order'
,
'flutter,Dart Core,flutter_test,flutter_driver'
,
'--show-warnings'
,
'--auto-include-dependencies'
,
];
];
// Explicitly list all the packages in //flutter/packages/* that are
// not listed 'nodoc' in their pubspec.yaml.
for
(
String
libraryRef
in
libraryRefs
(
diskPath:
true
))
{
for
(
String
libraryRef
in
libraryRefs
(
diskPath:
true
))
{
args
.
add
(
'--include-external'
);
args
.
add
(
'--include-external'
);
args
.
add
(
libraryRef
);
args
.
add
(
libraryRef
);
...
@@ -106,8 +116,18 @@ dependencies:
...
@@ -106,8 +116,18 @@ dependencies:
args
,
args
,
workingDirectory:
'dev/docs'
,
workingDirectory:
'dev/docs'
,
);
);
printStream
(
process
.
stdout
);
printStream
(
process
.
stdout
,
prefix:
'dartdoc:stdout: '
,
printStream
(
process
.
stderr
);
filter:
kVerbose
?
const
<
Pattern
>[]
:
<
Pattern
>[
new
RegExp
(
r'^generating docs for library '
),
// unnecessary verbosity
new
RegExp
(
r'^pars'
),
// unnecessary verbosity
],
);
printStream
(
process
.
stderr
,
prefix:
'dartdoc:stderr: '
,
filter:
kVerbose
?
const
<
Pattern
>[]
:
<
Pattern
>[
new
RegExp
(
r'^ warning: generic type handled as HTML:'
),
// https://github.com/dart-lang/dartdoc/issues/1475
new
RegExp
(
r'^ warning: .+: \(.+/\.pub-cache/hosted/pub.dartlang.org/.+\)'
),
// packages outside our control
],
);
final
int
exitCode
=
await
process
.
exitCode
;
final
int
exitCode
=
await
process
.
exitCode
;
if
(
exitCode
!=
0
)
if
(
exitCode
!=
0
)
...
@@ -194,15 +214,17 @@ void copyIndexToRootOfDocs() {
...
@@ -194,15 +214,17 @@ void copyIndexToRootOfDocs() {
void
addHtmlBaseToIndex
(
)
{
void
addHtmlBaseToIndex
(
)
{
final
File
indexFile
=
new
File
(
'
$kDocRoot
/index.html'
);
final
File
indexFile
=
new
File
(
'
$kDocRoot
/index.html'
);
String
indexContents
=
indexFile
.
readAsStringSync
();
String
indexContents
=
indexFile
.
readAsStringSync
();
indexContents
=
indexContents
.
replaceFirst
(
'</title>
\n
'
,
indexContents
=
indexContents
.
replaceFirst
(
'</title>
\n
<base href="./flutter/">
\n
'
);
'</title>
\n
'
,
'</title>
\n
<base href="./flutter/">
\n
'
,
);
indexContents
=
indexContents
.
replaceAll
(
indexContents
=
indexContents
.
replaceAll
(
'href="Android/Android-library.html"'
,
'href="Android/Android-library.html"'
,
'href="
https://docs.flutter.io/javadoc/"'
'href="
/javadoc/"'
,
);
);
indexContents
=
indexContents
.
replaceAll
(
indexContents
=
indexContents
.
replaceAll
(
'href="iOS/iOS-library.html"'
,
'href="iOS/iOS-library.html"'
,
'href="
https://docs.flutter.io/objcdoc/"'
'href="
/objcdoc/"'
,
);
);
indexFile
.
writeAsStringSync
(
indexContents
);
indexFile
.
writeAsStringSync
(
indexContents
);
...
@@ -257,9 +279,14 @@ Iterable<String> libraryRefs({ bool diskPath: false }) sync* {
...
@@ -257,9 +279,14 @@ Iterable<String> libraryRefs({ bool diskPath: false }) sync* {
}
}
}
}
void
printStream
(
Stream
<
List
<
int
>>
stream
)
{
void
printStream
(
Stream
<
List
<
int
>>
stream
,
{
String
prefix:
''
,
List
<
Pattern
>
filter:
const
<
Pattern
>[]
})
{
assert
(
prefix
!=
null
);
assert
(
filter
!=
null
);
stream
stream
.
transform
(
UTF8
.
decoder
)
.
transform
(
UTF8
.
decoder
)
.
transform
(
const
LineSplitter
())
.
transform
(
const
LineSplitter
())
.
listen
(
print
);
.
listen
((
String
line
)
{
if
(!
filter
.
any
((
Pattern
pattern
)
=>
line
.
contains
(
pattern
)))
print
(
'
$prefix$line
'
.
trim
());
});
}
}
dev/tools/java_and_objc_doc.dart
View file @
6655074b
...
@@ -13,21 +13,16 @@ const String kDocRoot = 'dev/docs/doc';
...
@@ -13,21 +13,16 @@ const String kDocRoot = 'dev/docs/doc';
/// This script downloads an archive of Javadoc and objc doc for the engine from
/// This script downloads an archive of Javadoc and objc doc for the engine from
/// the artifact store and extracts them to the location used for Dartdoc.
/// the artifact store and extracts them to the location used for Dartdoc.
Future
<
Null
>
main
(
List
<
String
>
args
)
async
{
Future
<
Null
>
main
(
List
<
String
>
args
)
async
{
final
String
engineVersion
=
final
String
engineVersion
=
new
File
(
'bin/internal/engine.version'
).
readAsStringSync
().
trim
();
new
File
(
'bin/internal/engine.version'
).
readAsStringSync
().
trim
();
final
String
javadocUrl
=
final
String
javadocUrl
=
'https://storage.googleapis.com/flutter_infra/flutter/
$engineVersion
/android-javadoc.zip'
;
'https://storage.googleapis.com/flutter_infra/flutter/
$engineVersion
/android-javadoc.zip'
;
generateDocs
(
javadocUrl
,
'javadoc'
,
'io/flutter/view/FlutterView.html'
);
generateDocs
(
javadocUrl
,
'javadoc'
,
'io/flutter/view/FlutterView.html'
);
final
String
objcdocUrl
=
final
String
objcdocUrl
=
'https://storage.googleapis.com/flutter_infra/flutter/
$engineVersion
/ios-objcdoc.zip'
;
'https://storage.googleapis.com/flutter_infra/flutter/
$engineVersion
/ios-objcdoc.zip'
;
generateDocs
(
objcdocUrl
,
'objcdoc'
,
'Classes/FlutterViewController.html'
);
generateDocs
(
objcdocUrl
,
'objcdoc'
,
'Classes/FlutterViewController.html'
);
}
}
Future
<
Null
>
generateDocs
(
Future
<
Null
>
generateDocs
(
String
url
,
String
docName
,
String
checkFile
)
async
{
final
String
url
,
String
docName
,
String
checkFile
)
async
{
final
http
.
Response
response
=
await
http
.
get
(
url
);
final
http
.
Response
response
=
await
http
.
get
(
url
);
final
Archive
archive
=
new
ZipDecoder
().
decodeBytes
(
response
.
bodyBytes
);
final
Archive
archive
=
new
ZipDecoder
().
decodeBytes
(
response
.
bodyBytes
);
...
...
packages/flutter/lib/foundation.dart
View file @
6655074b
...
@@ -23,6 +23,8 @@ export 'package:meta/meta.dart' show
...
@@ -23,6 +23,8 @@ export 'package:meta/meta.dart' show
// bool _lights;
// bool _lights;
// bool _visible;
// bool _visible;
// bool inherit;
// bool inherit;
// int columns;
// int rows;
// class Cat { }
// class Cat { }
// double _volume;
// double _volume;
// dynamic _calculation;
// dynamic _calculation;
...
...
packages/flutter/lib/src/cupertino/colors.dart
View file @
6655074b
...
@@ -22,7 +22,7 @@ class CupertinoColors {
...
@@ -22,7 +22,7 @@ class CupertinoColors {
///
///
/// See also:
/// See also:
///
///
/// * [Colors.white], the same color, in the material design palette.
/// * [
material.
Colors.white], the same color, in the material design palette.
/// * [black], opaque black in the [CupertinoColors] palette.
/// * [black], opaque black in the [CupertinoColors] palette.
static
const
Color
white
=
const
Color
(
0xFFFFFFFF
);
static
const
Color
white
=
const
Color
(
0xFFFFFFFF
);
...
@@ -30,7 +30,8 @@ class CupertinoColors {
...
@@ -30,7 +30,8 @@ class CupertinoColors {
///
///
/// See also:
/// See also:
///
///
/// * [Colors.black], the same color, in the material design palette.
/// * [material.Colors.black], the same color, in the material design palette.
/// * [white], opaque white in the [CupertinoColors] palette.
static
const
Color
black
=
const
Color
(
0xFF000000
);
static
const
Color
black
=
const
Color
(
0xFF000000
);
/// Used in iOS 10 for light background fills such as the chat bubble background.
/// Used in iOS 10 for light background fills such as the chat bubble background.
...
...
packages/flutter/lib/src/cupertino/nav_bar.dart
View file @
6655074b
...
@@ -41,7 +41,7 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
...
@@ -41,7 +41,7 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
this
.
trailing
,
this
.
trailing
,
this
.
backgroundColor
:
_kDefaultNavBarBackgroundColor
,
this
.
backgroundColor
:
_kDefaultNavBarBackgroundColor
,
this
.
actionsForegroundColor
:
CupertinoColors
.
activeBlue
,
this
.
actionsForegroundColor
:
CupertinoColors
.
activeBlue
,
})
:
assert
(
middle
!=
null
,
'There must be a middle widget, usually a title'
),
})
:
assert
(
middle
!=
null
,
'There must be a middle widget, usually a title
.
'
),
super
(
key:
key
);
super
(
key:
key
);
/// Widget to place at the start of the nav bar. Normally a back button
/// Widget to place at the start of the nav bar. Normally a back button
...
@@ -66,7 +66,8 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
...
@@ -66,7 +66,8 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
/// Default color used for text and icons of the [leading] and [trailing]
/// Default color used for text and icons of the [leading] and [trailing]
/// widgets in the nav bar.
/// widgets in the nav bar.
///
///
/// The [title] remains black if it's a text as per iOS standard design.
/// The default color for text in the [middle] slot is always black, as per
/// iOS standard design.
final
Color
actionsForegroundColor
;
final
Color
actionsForegroundColor
;
/// True if the nav bar's background color has no transparency.
/// True if the nav bar's background color has no transparency.
...
@@ -77,15 +78,28 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
...
@@ -77,15 +78,28 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
Widget
styledMiddle
=
middle
;
final
TextStyle
actionsStyle
=
new
TextStyle
(
if
(
styledMiddle
.
runtimeType
==
Text
||
styledMiddle
.
runtimeType
==
DefaultTextStyle
)
{
fontSize:
17.0
,
// Let the middle be black rather than `actionsForegroundColor` in case
letterSpacing:
-
0.24
,
// it's a plain text title.
color:
actionsForegroundColor
,
styledMiddle
=
DefaultTextStyle
.
merge
(
);
style:
const
TextStyle
(
color:
CupertinoColors
.
black
),
child:
middle
,
final
Widget
styledLeading
=
leading
==
null
?
null
:
DefaultTextStyle
.
merge
(
);
style:
actionsStyle
,
}
child:
leading
,
);
final
Widget
styledTrailing
=
trailing
==
null
?
null
:
DefaultTextStyle
.
merge
(
style:
actionsStyle
,
child:
trailing
,
);
// Let the middle be black rather than `actionsForegroundColor` in case
// it's a plain text title.
final
Widget
styledMiddle
=
middle
==
null
?
null
:
DefaultTextStyle
.
merge
(
style:
actionsStyle
.
copyWith
(
color:
CupertinoColors
.
black
),
child:
middle
,
);
// TODO(xster): automatically build a CupertinoBackButton.
// TODO(xster): automatically build a CupertinoBackButton.
...
@@ -107,26 +121,19 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
...
@@ -107,26 +121,19 @@ class CupertinoNavigationBar extends StatelessWidget implements PreferredSizeWid
color:
actionsForegroundColor
,
color:
actionsForegroundColor
,
size:
22.0
,
size:
22.0
,
),
),
child:
DefaultTextStyle
.
merge
(
child:
new
Padding
(
style:
new
TextStyle
(
padding:
new
EdgeInsets
.
only
(
fontSize:
17.0
,
top:
MediaQuery
.
of
(
context
).
padding
.
top
,
letterSpacing:
-
0.24
,
// TODO(xster): dynamically reduce padding when an automatic
color:
actionsForegroundColor
,
// CupertinoBackButton is present.
left:
16.0
,
right:
16.0
,
),
),
child:
new
Padding
(
child:
new
NavigationToolbar
(
padding:
new
EdgeInsets
.
only
(
leading:
styledLeading
,
top:
MediaQuery
.
of
(
context
).
padding
.
top
,
middle:
styledMiddle
,
// TODO(xster): dynamically reduce padding when an automatic
trailing:
styledTrailing
,
// CupertinoBackButton is present.
centerMiddle:
true
,
left:
16.0
,
right:
16.0
,
),
child:
new
NavigationToolbar
(
leading:
leading
,
middle:
styledMiddle
,
trailing:
trailing
,
centerMiddle:
true
,
),
),
),
),
),
),
),
...
...
packages/flutter/lib/src/foundation/tree_diagnostics_mixin.dart
View file @
6655074b
This diff is collapsed.
Click to expand it.
packages/flutter/lib/src/material/feedback.dart
View file @
6655074b
...
@@ -15,14 +15,16 @@ import 'theme.dart';
...
@@ -15,14 +15,16 @@ import 'theme.dart';
/// For example, to play the Android-typically click sound when a button is
/// For example, to play the Android-typically click sound when a button is
/// tapped, call [forTap]. For the Android-specific vibration when long pressing
/// tapped, call [forTap]. For the Android-specific vibration when long pressing
/// an element, call [forLongPress]. Alternatively, you can also wrap your
/// an element, call [forLongPress]. Alternatively, you can also wrap your
/// [onTap] or [onLongPress] callback in [wrapForTap] or [wrapForLongPress] to
/// [GestureDetector.onTap] or [GestureDetector.onLongPress] callback in
/// achieve the same (see example code below).
/// [wrapForTap] or [wrapForLongPress] to achieve the same (see example code
/// below).
///
///
/// Calling any of these methods is a no-op on iOS as actions on that platform
/// Calling any of these methods is a no-op on iOS as actions on that platform
/// typically don't provide haptic or acoustic feedback.
/// typically don't provide haptic or acoustic feedback.
///
///
/// All methods in this class are usually called from within a [build] method
/// All methods in this class are usually called from within a
/// or from a State's methods as you have to provide a [BuildContext].
/// [StatelessWidget.build] method or from a [State]'s methods as you have to
/// provide a [BuildContext].
///
///
/// ## Sample code
/// ## Sample code
///
///
...
...
packages/flutter/lib/src/material/tabs.dart
View file @
6655074b
...
@@ -458,10 +458,13 @@ class TabBar extends StatefulWidget implements PreferredSizeWidget {
...
@@ -458,10 +458,13 @@ class TabBar extends StatefulWidget implements PreferredSizeWidget {
final
double
indicatorWeight
;
final
double
indicatorWeight
;
/// The horizontal padding for the line that appears below the selected tab.
/// The horizontal padding for the line that appears below the selected tab.
/// For [isScrollable] tab bars, specifying [k
Default
TabLabelPadding] will align
/// For [isScrollable] tab bars, specifying [kTabLabelPadding] will align
/// the indicator with the tab's text for [Tab] widgets and all but the
/// the indicator with the tab's text for [Tab] widgets and all but the
/// shortest [Tab.text] values.
/// shortest [Tab.text] values.
///
///
/// The [EdgeInsets.top] and [EdgeInsets.bottom] values of the
/// [indicatorPadding] are ignored.
///
/// The default value of [indicatorPadding] is [EdgeInsets.zero].
/// The default value of [indicatorPadding] is [EdgeInsets.zero].
final
EdgeInsets
indicatorPadding
;
final
EdgeInsets
indicatorPadding
;
...
...
packages/flutter/lib/src/painting/colors.dart
View file @
6655074b
...
@@ -181,7 +181,7 @@ class HSVColor {
...
@@ -181,7 +181,7 @@ class HSVColor {
///
///
/// * [MaterialColor] and [MaterialAccentColor], which define material design
/// * [MaterialColor] and [MaterialAccentColor], which define material design
/// primary and accent color swatches.
/// primary and accent color swatches.
/// * [Colors], which defines all of the standard material design colors.
/// * [
material.
Colors], which defines all of the standard material design colors.
class
ColorSwatch
<
T
>
extends
Color
{
class
ColorSwatch
<
T
>
extends
Color
{
/// Creates a color that has a small table of related colors called a "swatch".
/// Creates a color that has a small table of related colors called a "swatch".
const
ColorSwatch
(
int
primary
,
this
.
_swatch
)
:
super
(
primary
);
const
ColorSwatch
(
int
primary
,
this
.
_swatch
)
:
super
(
primary
);
...
...
packages/flutter/lib/src/painting/edge_insets.dart
View file @
6655074b
...
@@ -97,7 +97,7 @@ class EdgeInsets {
...
@@ -97,7 +97,7 @@ class EdgeInsets {
///
///
/// If you need the current system padding in the context of a widget,
/// If you need the current system padding in the context of a widget,
/// consider using [MediaQuery.of] to obtain the current padding rather than
/// consider using [MediaQuery.of] to obtain the current padding rather than
/// using the value from [ui.window], so that you get notified when it
/// using the value from [
dart:
ui.window], so that you get notified when it
/// changes.
/// changes.
EdgeInsets
.
fromWindowPadding
(
ui
.
WindowPadding
padding
,
double
devicePixelRatio
)
EdgeInsets
.
fromWindowPadding
(
ui
.
WindowPadding
padding
,
double
devicePixelRatio
)
:
left
=
padding
.
left
/
devicePixelRatio
,
:
left
=
padding
.
left
/
devicePixelRatio
,
...
...
packages/flutter/lib/src/painting/flutter_logo.dart
View file @
6655074b
...
@@ -56,15 +56,16 @@ class FlutterLogoDecoration extends Decoration {
...
@@ -56,15 +56,16 @@ class FlutterLogoDecoration extends Decoration {
/// The lighter of the two colors used to paint the logo.
/// The lighter of the two colors used to paint the logo.
///
///
/// If possible, the default should be used. It corresponds to the 400 and 900
/// If possible, the default should be used. It corresponds to the 400 and 900
/// values of [Colors.blue] from the Material library.
/// values of [
material.
Colors.blue] from the Material library.
///
///
/// If for some reason that color scheme is impractical, the same entries from
/// If for some reason that color scheme is impractical, the same entries from
/// [Colors.amber], [Colors.red], or [Colors.indigo] colors can be used. These
/// [material.Colors.amber], [material.Colors.red], or
/// are Flutter's secondary colors.
/// [material.Colors.indigo] colors can be used. These are Flutter's secondary
/// colors.
///
///
/// In extreme cases where none of those four color schemes will work,
/// In extreme cases where none of those four color schemes will work,
/// [
Colors.pink], [Colors.purple], or [Colors.cyan] can be used.
/// [
material.Colors.pink], [material.Colors.purple], or
/// These are Flutter's tertiary colors.
///
[material.Colors.cyan] can be used.
These are Flutter's tertiary colors.
final
Color
lightColor
;
final
Color
lightColor
;
/// The darker of the two colors used to paint the logo.
/// The darker of the two colors used to paint the logo.
...
...
packages/flutter/lib/src/painting/text_span.dart
View file @
6655074b
...
@@ -96,7 +96,7 @@ class TextSpan implements TreeDiagnostics {
...
@@ -96,7 +96,7 @@ class TextSpan implements TreeDiagnostics {
/// ## Sample code
/// ## Sample code
///
///
/// This example shows how to manage the lifetime of a gesture recognizer
/// This example shows how to manage the lifetime of a gesture recognizer
/// provided to a [TextSpan] object. It defines a
[BuzzingText]
widget which
/// provided to a [TextSpan] object. It defines a
`BuzzingText`
widget which
/// uses the [HapticFeedback] class to vibrate the device when the user
/// uses the [HapticFeedback] class to vibrate the device when the user
/// long-presses the "find the" span, which is underlined in wavy green. The
/// long-presses the "find the" span, which is underlined in wavy green. The
/// hit-testing is handled by the [RichText] widget.
/// hit-testing is handled by the [RichText] widget.
...
...
packages/flutter/lib/src/painting/text_style.dart
View file @
6655074b
...
@@ -40,11 +40,11 @@ import 'basic_types.dart';
...
@@ -40,11 +40,11 @@ import 'basic_types.dart';
/// ### Opacity
/// ### Opacity
///
///
/// Each line here is progressively more opaque. The base color is
/// Each line here is progressively more opaque. The base color is
/// [
Colors.black], and [Color.withOpacity] is used to create a derivative color
/// [
material.Colors.black], and [Color.withOpacity] is used to create a
///
with the desired opacity. The root [TextSpan] for this [RichText] widget
is
///
derivative color with the desired opacity. The root [TextSpan] for th
is
///
explicitly given the ambient [DefaultTextStyle], since [RichText] does not
///
[RichText] widget is explicitly given the ambient [DefaultTextStyle], since
///
do that automatically. The inner [TextStyle] objects are implicitly mixed
///
[RichText] does not do that automatically. The inner [TextStyle] objects are
/// with the parent [TextSpan]'s [TextSpan.style].
///
implicitly mixed
with the parent [TextSpan]'s [TextSpan.style].
///
///
/// ```dart
/// ```dart
/// new RichText(
/// new RichText(
...
...
packages/flutter/lib/src/rendering/box.dart
View file @
6655074b
...
@@ -836,7 +836,7 @@ class _IntrinsicDimensionsCacheEntry {
...
@@ -836,7 +836,7 @@ class _IntrinsicDimensionsCacheEntry {
/// * Implement the [visitChildren] method such that it calls its argument for
/// * Implement the [visitChildren] method such that it calls its argument for
/// each child, typically in paint order (back-most to front-most).
/// each child, typically in paint order (back-most to front-most).
///
///
/// * Implement [debugDescribeChildren] such that it outputs a [DiagnosticNode]
/// * Implement [debugDescribeChildren] such that it outputs a [Diagnostic
s
Node]
/// for each child.
/// for each child.
///
///
/// Implementing these seven bullet points is essentially all that the two
/// Implementing these seven bullet points is essentially all that the two
...
...
packages/flutter/lib/src/rendering/layer.dart
View file @
6655074b
...
@@ -122,7 +122,7 @@ class PictureLayer extends Layer {
...
@@ -122,7 +122,7 @@ class PictureLayer extends Layer {
/// The bounds that were used for the canvas that drew this layer's [picture].
/// The bounds that were used for the canvas that drew this layer's [picture].
///
///
/// This is purely advisory. It is included in the information dumped with
/// This is purely advisory. It is included in the information dumped with
/// [dumpLayerTree] (which can be triggered by pressing "L" when using
/// [d
ebugD
umpLayerTree] (which can be triggered by pressing "L" when using
/// "flutter run" at the console), which can help debug why certain drawing
/// "flutter run" at the console), which can help debug why certain drawing
/// commands are being culled.
/// commands are being culled.
final
Rect
canvasBounds
;
final
Rect
canvasBounds
;
...
@@ -866,7 +866,7 @@ class LeaderLayer extends ContainerLayer {
...
@@ -866,7 +866,7 @@ class LeaderLayer extends ContainerLayer {
///
///
/// If any of the ancestors of this layer have a degenerate matrix (e.g. scaling
/// If any of the ancestors of this layer have a degenerate matrix (e.g. scaling
/// by zero), then the [FollowerLayer] will not be able to transform its child
/// by zero), then the [FollowerLayer] will not be able to transform its child
/// to the coordinate space of the [Leader].
/// to the coordinate space of the [Leader
Layer
].
///
///
/// A [linkedOffset] property can be provided to further offset the child layer
/// A [linkedOffset] property can be provided to further offset the child layer
/// from the leader layer, for example if the child is to follow the linked
/// from the leader layer, for example if the child is to follow the linked
...
...
packages/flutter/lib/src/rendering/object.dart
View file @
6655074b
...
@@ -72,12 +72,12 @@ class PaintingContext {
...
@@ -72,12 +72,12 @@ class PaintingContext {
/// A render object provided with this [PaintingContext] (e.g. in its
/// A render object provided with this [PaintingContext] (e.g. in its
/// [RenderObject.paint] method) is permitted to paint outside the region that
/// [RenderObject.paint] method) is permitted to paint outside the region that
/// the render object occupies during layout, but is not permitted to paint
/// the render object occupies during layout, but is not permitted to paint
/// outside these
paints bounds. These paint bounds are used to construct
/// outside these
canvas paints bounds. These paint bounds are used to
///
memory-efficient composited layers, which means attempting to paint
///
construct memory-efficient composited layers, which means attempting to
///
outside these bounds can attempt to write to pixels that do not exist in
///
paint outside these bounds can attempt to write to pixels that do not
/// the composited layer.
///
exist in
the composited layer.
///
///
/// The [
paint
Bounds] rectangle is in the [canvas] coordinate system.
/// The [
canvas
Bounds] rectangle is in the [canvas] coordinate system.
final
Rect
canvasBounds
;
final
Rect
canvasBounds
;
/// Repaint the given render object.
/// Repaint the given render object.
...
@@ -1180,7 +1180,7 @@ class PipelineOwner {
...
@@ -1180,7 +1180,7 @@ class PipelineOwner {
/// update.
/// update.
///
///
/// Initially, only the root node, as scheduled by
/// Initially, only the root node, as scheduled by
/// [RenderObjectscheduleInitialSemantics], needs a semantics update.
/// [RenderObject
.
scheduleInitialSemantics], needs a semantics update.
///
///
/// This function is one of the core stages of the rendering pipeline. The
/// This function is one of the core stages of the rendering pipeline. The
/// semantics are compiled after painting and only after
/// semantics are compiled after painting and only after
...
...
packages/flutter/lib/src/services/image_stream.dart
View file @
6655074b
...
@@ -177,7 +177,7 @@ class ImageStreamCompleter {
...
@@ -177,7 +177,7 @@ class ImageStreamCompleter {
/// object is available. If a concrete image is already available, this object
/// object is available. If a concrete image is already available, this object
/// will call the listener synchronously.
/// will call the listener synchronously.
///
///
/// If the
assigned [c
ompleter] completes multiple images over its lifetime,
/// If the
[ImageStreamC
ompleter] completes multiple images over its lifetime,
/// this listener will fire multiple times.
/// this listener will fire multiple times.
///
///
/// The listener will be passed a flag indicating whether a synchronous call
/// The listener will be passed a flag indicating whether a synchronous call
...
...
packages/flutter/lib/src/widgets/framework.dart
View file @
6655074b
...
@@ -1378,7 +1378,7 @@ abstract class State<T extends StatefulWidget> {
...
@@ -1378,7 +1378,7 @@ abstract class State<T extends StatefulWidget> {
}
}
/// Add additional properties to the given description used by
/// Add additional properties to the given description used by
/// [toDiagnosticNode], [toString] and [toStringDeep].
/// [toDiagnostic
s
Node], [toString] and [toStringDeep].
///
///
/// This method makes it easier for subclasses to coordinate to provide
/// This method makes it easier for subclasses to coordinate to provide
/// high-quality diagnostic data. The [toString] implementation on
/// high-quality diagnostic data. The [toString] implementation on
...
@@ -3305,7 +3305,7 @@ abstract class Element implements BuildContext, TreeDiagnostics {
...
@@ -3305,7 +3305,7 @@ abstract class Element implements BuildContext, TreeDiagnostics {
}
}
/// Add additional properties to the given description used by
/// Add additional properties to the given description used by
/// [toDiagnosticNode], [toString] and [toStringDeep].
/// [toDiagnostic
s
Node], [toString] and [toStringDeep].
///
///
/// This method makes it easier for subclasses to coordinate to provide
/// This method makes it easier for subclasses to coordinate to provide
/// high-quality diagnostic data. The [toString] implementation on
/// high-quality diagnostic data. The [toString] implementation on
...
...
packages/flutter/lib/src/widgets/gesture_detector.dart
View file @
6655074b
...
@@ -439,7 +439,7 @@ class GestureDetector extends StatelessWidget {
...
@@ -439,7 +439,7 @@ class GestureDetector extends StatelessWidget {
/// See also:
/// See also:
///
///
/// * [GestureDetector], a less flexible but much simpler widget that does the same thing.
/// * [GestureDetector], a less flexible but much simpler widget that does the same thing.
/// * [
Pointer
Listener], a widget that reports raw pointer events.
/// * [Listener], a widget that reports raw pointer events.
/// * [GestureRecognizer], the class that you extend to create a custom gesture recognizer.
/// * [GestureRecognizer], the class that you extend to create a custom gesture recognizer.
class
RawGestureDetector
extends
StatefulWidget
{
class
RawGestureDetector
extends
StatefulWidget
{
/// Creates a widget that detects gestures.
/// Creates a widget that detects gestures.
...
...
packages/flutter/lib/src/widgets/page_view.dart
View file @
6655074b
...
@@ -329,7 +329,7 @@ const PageScrollPhysics _kPagePhysics = const PageScrollPhysics();
...
@@ -329,7 +329,7 @@ const PageScrollPhysics _kPagePhysics = const PageScrollPhysics();
/// * [SingleChildScrollView], when you need to make a single child scrollable.
/// * [SingleChildScrollView], when you need to make a single child scrollable.
/// * [ListView], for a scrollable list of boxes.
/// * [ListView], for a scrollable list of boxes.
/// * [GridView], for a scrollable grid of boxes.
/// * [GridView], for a scrollable grid of boxes.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
class
PageView
extends
StatefulWidget
{
class
PageView
extends
StatefulWidget
{
/// Creates a scrollable list that works page by page from an explicit [List]
/// Creates a scrollable list that works page by page from an explicit [List]
...
...
packages/flutter/lib/src/widgets/scroll_controller.dart
View file @
6655074b
...
@@ -40,7 +40,7 @@ import 'scroll_position_with_single_context.dart';
...
@@ -40,7 +40,7 @@ import 'scroll_position_with_single_context.dart';
/// [PageView].
/// [PageView].
/// * [ScrollPosition], which manages the scroll offset for an individual
/// * [ScrollPosition], which manages the scroll offset for an individual
/// scrolling widget.
/// scrolling widget.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
class
ScrollController
extends
ChangeNotifier
{
class
ScrollController
extends
ChangeNotifier
{
/// Creates a controller for a scrollable widget.
/// Creates a controller for a scrollable widget.
...
@@ -285,9 +285,9 @@ class ScrollController extends ChangeNotifier {
...
@@ -285,9 +285,9 @@ class ScrollController extends ChangeNotifier {
/// ## Sample code
/// ## Sample code
///
///
/// In this example each [PageView] page contains a [ListView] and all three
/// In this example each [PageView] page contains a [ListView] and all three
/// [ListView]'s share a [Tracking
Controller]. The scroll offsets of all three
/// [ListView]'s share a [Tracking
ScrollController]. The scroll offsets of all
///
list views will track each other, to the extent that's possible given the
///
three list views will track each other, to the extent that's possible given
/// different list lengths.
///
the
different list lengths.
///
///
/// ```dart
/// ```dart
/// new PageView(
/// new PageView(
...
...
packages/flutter/lib/src/widgets/scroll_position.dart
View file @
6655074b
...
@@ -58,7 +58,7 @@ export 'scroll_activity.dart' show ScrollHoldController;
...
@@ -58,7 +58,7 @@ export 'scroll_activity.dart' show ScrollHoldController;
/// other scrollable widgets to control a [ScrollPosition].
/// other scrollable widgets to control a [ScrollPosition].
/// * [ScrollPositionWithSingleContext], which is the most commonly used
/// * [ScrollPositionWithSingleContext], which is the most commonly used
/// concrete subclass of [ScrollPosition].
/// concrete subclass of [ScrollPosition].
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
abstract
class
ScrollPosition
extends
ViewportOffset
with
ScrollMetrics
{
abstract
class
ScrollPosition
extends
ViewportOffset
with
ScrollMetrics
{
/// Creates an object that determines which portion of the content is visible
/// Creates an object that determines which portion of the content is visible
...
@@ -92,7 +92,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics {
...
@@ -92,7 +92,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics {
/// Typically implemented by [ScrollableState].
/// Typically implemented by [ScrollableState].
final
ScrollContext
context
;
final
ScrollContext
context
;
/// Save the current scroll
[offset]
with [PageStorage] and restore it if
/// Save the current scroll
offset
with [PageStorage] and restore it if
/// this scroll position's scrollable is recreated.
/// this scroll position's scrollable is recreated.
///
///
/// See also:
/// See also:
...
...
packages/flutter/lib/src/widgets/scroll_view.dart
View file @
6655074b
...
@@ -42,7 +42,7 @@ import 'viewport.dart';
...
@@ -42,7 +42,7 @@ import 'viewport.dart';
/// of child widgets.
/// of child widgets.
/// * [CustomScrollView], which is a [ScrollView] that creates custom scroll
/// * [CustomScrollView], which is a [ScrollView] that creates custom scroll
/// effects using slivers.
/// effects using slivers.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
abstract
class
ScrollView
extends
StatelessWidget
{
abstract
class
ScrollView
extends
StatelessWidget
{
/// Creates a widget that scrolls.
/// Creates a widget that scrolls.
...
@@ -303,7 +303,7 @@ abstract class ScrollView extends StatelessWidget {
...
@@ -303,7 +303,7 @@ abstract class ScrollView extends StatelessWidget {
/// sliver.
/// sliver.
/// * [SliverAppBar], which is a sliver that displays a header that can expand
/// * [SliverAppBar], which is a sliver that displays a header that can expand
/// and float as the scroll view scrolls.
/// and float as the scroll view scrolls.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
class
CustomScrollView
extends
ScrollView
{
class
CustomScrollView
extends
ScrollView
{
/// Creates a [ScrollView] that creates custom scroll effects using slivers.
/// Creates a [ScrollView] that creates custom scroll effects using slivers.
...
@@ -438,7 +438,7 @@ abstract class BoxScrollView extends ScrollView {
...
@@ -438,7 +438,7 @@ abstract class BoxScrollView extends ScrollView {
/// ## Transitioning to [CustomScrollView]
/// ## Transitioning to [CustomScrollView]
///
///
/// A [ListView] is basically a [CustomScrollView] with a single [SliverList] in
/// A [ListView] is basically a [CustomScrollView] with a single [SliverList] in
/// its [slivers] property.
/// its [
CustomScrollView.
slivers] property.
///
///
/// If [ListView] is no longer sufficient, for example because the scroll view
/// If [ListView] is no longer sufficient, for example because the scroll view
/// is to have both a list and a grid, or because the list is to be combined
/// is to have both a list and a grid, or because the list is to be combined
...
@@ -519,7 +519,7 @@ abstract class BoxScrollView extends ScrollView {
...
@@ -519,7 +519,7 @@ abstract class BoxScrollView extends ScrollView {
/// scroll effects using slivers.
/// scroll effects using slivers.
/// * [ListBody], which arranges its children in a similar manner, but without
/// * [ListBody], which arranges its children in a similar manner, but without
/// scrolling.
/// scrolling.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
class
ListView
extends
BoxScrollView
{
class
ListView
extends
BoxScrollView
{
/// Creates a scrollable, linear array of widgets from an explicit [List].
/// Creates a scrollable, linear array of widgets from an explicit [List].
...
@@ -708,7 +708,7 @@ class ListView extends BoxScrollView {
...
@@ -708,7 +708,7 @@ class ListView extends BoxScrollView {
/// ## Transitioning to [CustomScrollView]
/// ## Transitioning to [CustomScrollView]
///
///
/// A [GridView] is basically a [CustomScrollView] with a single [SliverGrid] in
/// A [GridView] is basically a [CustomScrollView] with a single [SliverGrid] in
/// its [slivers] property.
/// its [
CustomScrollView.
slivers] property.
///
///
/// If [GridView] is no longer sufficient, for example because the scroll view
/// If [GridView] is no longer sufficient, for example because the scroll view
/// is to have both a grid and a list, or because the grid is to be combined
/// is to have both a grid and a list, or because the grid is to be combined
...
@@ -804,7 +804,7 @@ class ListView extends BoxScrollView {
...
@@ -804,7 +804,7 @@ class ListView extends BoxScrollView {
/// a fixed number of tiles in the cross axis.
/// a fixed number of tiles in the cross axis.
/// * [SliverGridDelegateWithMaxCrossAxisExtent], which creates a layout with
/// * [SliverGridDelegateWithMaxCrossAxisExtent], which creates a layout with
/// tiles that have a maximum cross-axis extent.
/// tiles that have a maximum cross-axis extent.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
class
GridView
extends
BoxScrollView
{
class
GridView
extends
BoxScrollView
{
/// Creates a scrollable, 2D array of widgets with a custom
/// Creates a scrollable, 2D array of widgets with a custom
...
...
packages/flutter/lib/src/widgets/scrollable.dart
View file @
6655074b
...
@@ -67,7 +67,7 @@ typedef Widget ViewportBuilder(BuildContext context, ViewportOffset position);
...
@@ -67,7 +67,7 @@ typedef Widget ViewportBuilder(BuildContext context, ViewportOffset position);
/// effects using slivers.
/// effects using slivers.
/// * [SingleChildScrollView], which is a scrollable widget that has a single
/// * [SingleChildScrollView], which is a scrollable widget that has a single
/// child.
/// child.
/// * [ScollNotification] and [NotificationListener], which can be used to watch
/// * [Sc
r
ollNotification] and [NotificationListener], which can be used to watch
/// the scroll position without using a [ScrollController].
/// the scroll position without using a [ScrollController].
class
Scrollable
extends
StatefulWidget
{
class
Scrollable
extends
StatefulWidget
{
/// Creates a widget that scrolls.
/// Creates a widget that scrolls.
...
...
packages/flutter/test/cupertino/nav_bar_test.dart
View file @
6655074b
...
@@ -6,6 +6,8 @@ import 'package:flutter/cupertino.dart';
...
@@ -6,6 +6,8 @@ import 'package:flutter/cupertino.dart';
import
'package:flutter/rendering.dart'
;
import
'package:flutter/rendering.dart'
;
import
'package:flutter_test/flutter_test.dart'
;
import
'package:flutter_test/flutter_test.dart'
;
int
count
=
0
;
void
main
(
)
{
void
main
(
)
{
testWidgets
(
'Middle still in center with asymmetrical actions'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Middle still in center with asymmetrical actions'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
await
tester
.
pumpWidget
(
...
@@ -67,4 +69,44 @@ void main() {
...
@@ -67,4 +69,44 @@ void main() {
);
);
expect
(
find
.
byType
(
BackdropFilter
),
findsOneWidget
);
expect
(
find
.
byType
(
BackdropFilter
),
findsOneWidget
);
});
});
testWidgets
(
'Verify styles of each slot'
,
(
WidgetTester
tester
)
async
{
count
=
0x000000
;
await
tester
.
pumpWidget
(
new
WidgetsApp
(
color:
const
Color
(
0xFFFFFFFF
),
onGenerateRoute:
(
RouteSettings
settings
)
{
return
new
PageRouteBuilder
<
Null
>(
settings:
settings
,
pageBuilder:
(
BuildContext
context
,
Animation
<
double
>
animation
,
Animation
<
double
>
secondaryAnimation
)
{
return
const
CupertinoNavigationBar
(
leading:
const
_ExpectStyles
(
color:
const
Color
(
0xFF001122
),
index:
0x000001
),
middle:
const
_ExpectStyles
(
color:
const
Color
(
0xFF000000
),
index:
0x000100
),
trailing:
const
_ExpectStyles
(
color:
const
Color
(
0xFF001122
),
index:
0x010000
),
actionsForegroundColor:
const
Color
(
0xFF001122
),
);
},
);
},
),
);
expect
(
count
,
0x010101
);
});
}
class
_ExpectStyles
extends
StatelessWidget
{
const
_ExpectStyles
({
this
.
color
,
this
.
index
});
final
Color
color
;
final
int
index
;
@override
Widget
build
(
BuildContext
context
)
{
final
TextStyle
style
=
DefaultTextStyle
.
of
(
context
).
style
;
expect
(
style
.
color
,
color
);
expect
(
style
.
fontSize
,
17.0
);
expect
(
style
.
letterSpacing
,
-
0.24
);
count
+=
index
;
return
new
Container
();
}
}
}
\ No newline at end of file
packages/flutter_driver/lib/flutter_driver.dart
View file @
6655074b
...
@@ -25,8 +25,7 @@ export 'src/error.dart' show
...
@@ -25,8 +25,7 @@ export 'src/error.dart' show
LogRecord
,
LogRecord
,
flutterDriverLog
;
flutterDriverLog
;
export
'src/find.dart'
show
export
'src/find.dart'
show
SerializableFinder
,
SerializableFinder
;
GetTextResult
;
export
'src/health.dart'
show
export
'src/health.dart'
show
Health
,
Health
,
HealthStatus
;
HealthStatus
;
...
...
packages/flutter_driver/lib/src/render_tree.dart
View file @
6655074b
...
@@ -16,7 +16,8 @@ class GetRenderTree extends Command {
...
@@ -16,7 +16,8 @@ class GetRenderTree extends Command {
final
String
kind
=
'get_render_tree'
;
final
String
kind
=
'get_render_tree'
;
}
}
/// A string representation of the render tree, the result of a [GetRenderTree] command.
/// A string representation of the render tree, the result of a
/// [FlutterDriver.getRenderTree] method.
class
RenderTree
extends
Result
{
class
RenderTree
extends
Result
{
/// Creates a [RenderTree] object with the given string representation.
/// Creates a [RenderTree] object with the given string representation.
RenderTree
(
this
.
tree
);
RenderTree
(
this
.
tree
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment