Skip to content

Commit 2d288eb

Browse files
committed
feat: Fix the issue of flutter RenderBox was not laid out
feat: Fix the issue of flutter RenderBox was not laid out
1 parent 5d2ff5f commit 2d288eb

12 files changed

+176
-3
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# 1.4.1
2+
- Fix the issue of flutter RenderBox was not laid out in the new version
3+
14
# 1.3.3
25
- Upgrade the latest dependency version
36
- Upgrade the examples part of the code

example/analysis_options.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# This file configures the analyzer, which statically analyzes Dart code to
2+
# check for errors, warnings, and lints.
3+
#
4+
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5+
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6+
# invoked from the command line by running `flutter analyze`.
7+
8+
# The following line activates a set of recommended lints for Flutter apps,
9+
# packages, and plugins designed to encourage good coding practices.
10+
include: package:flutter_lints/flutter.yaml
11+
12+
linter:
13+
# The lint rules applied to this project can be customized in the
14+
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
15+
# included above or to enable additional rules. A list of all available lints
16+
# and their documentation is published at
17+
# https://dart-lang.github.io/linter/lints/index.html.
18+
#
19+
# Instead of disabling a lint rule for the entire project in the
20+
# section below, it can also be suppressed for a single line of code
21+
# or a specific dart file by using the `// ignore: name_of_lint` and
22+
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
23+
# producing the lint.
24+
rules:
25+
# avoid_print: false # Uncomment to disable the `avoid_print` rule
26+
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
27+
28+
# Additional information about this file can be found at
29+
# https://dart.dev/guides/language/analysis-options

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ dependencies:
2323
# The following adds the Cupertino Icons font to your application.
2424
# Use with the CupertinoIcons class for iOS style icons.
2525
cupertino_icons: ^0.1.2
26-
zerker: ^1.3.1
26+
zerker: ^1.4.1
2727

2828
dev_dependencies:
2929
flutter_test:

example/web/favicon.png

917 Bytes
Loading

example/web/icons/Icon-192.png

5.17 KB
Loading

example/web/icons/Icon-512.png

8.06 KB
Loading
5.46 KB
Loading
20.5 KB
Loading

example/web/index.html

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<!--
5+
If you are serving your web app in a path other than the root, change the
6+
href value below to reflect the base path you are serving from.
7+
8+
The path provided below has to start and end with a slash "/" in order for
9+
it to work correctly.
10+
11+
For more details:
12+
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
13+
14+
This is a placeholder for base href that will be replaced by the value of
15+
the `--base-href` argument provided to `flutter build`.
16+
-->
17+
<base href="$FLUTTER_BASE_HREF">
18+
19+
<meta charset="UTF-8">
20+
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
21+
<meta name="description" content="A new Flutter project.">
22+
23+
<!-- iOS meta tags & icons -->
24+
<meta name="apple-mobile-web-app-capable" content="yes">
25+
<meta name="apple-mobile-web-app-status-bar-style" content="black">
26+
<meta name="apple-mobile-web-app-title" content="example">
27+
<link rel="apple-touch-icon" href="icons/Icon-192.png">
28+
29+
<!-- Favicon -->
30+
<link rel="icon" type="image/png" href="favicon.png"/>
31+
32+
<title>example</title>
33+
<link rel="manifest" href="manifest.json">
34+
</head>
35+
<body>
36+
<!-- This script installs service_worker.js to provide PWA functionality to
37+
application. For more information, see:
38+
https://developers.google.com/web/fundamentals/primers/service-workers -->
39+
<script>
40+
var serviceWorkerVersion = null;
41+
var scriptLoaded = false;
42+
function loadMainDartJs() {
43+
if (scriptLoaded) {
44+
return;
45+
}
46+
scriptLoaded = true;
47+
var scriptTag = document.createElement('script');
48+
scriptTag.src = 'main.dart.js';
49+
scriptTag.type = 'application/javascript';
50+
document.body.append(scriptTag);
51+
}
52+
53+
if ('serviceWorker' in navigator) {
54+
// Service workers are supported. Use them.
55+
window.addEventListener('load', function () {
56+
// Wait for registration to finish before dropping the <script> tag.
57+
// Otherwise, the browser will load the script multiple times,
58+
// potentially different versions.
59+
var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion;
60+
navigator.serviceWorker.register(serviceWorkerUrl)
61+
.then((reg) => {
62+
function waitForActivation(serviceWorker) {
63+
serviceWorker.addEventListener('statechange', () => {
64+
if (serviceWorker.state == 'activated') {
65+
console.log('Installed new service worker.');
66+
loadMainDartJs();
67+
}
68+
});
69+
}
70+
if (!reg.active && (reg.installing || reg.waiting)) {
71+
// No active web worker and we have installed or are installing
72+
// one for the first time. Simply wait for it to activate.
73+
waitForActivation(reg.installing || reg.waiting);
74+
} else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) {
75+
// When the app updates the serviceWorkerVersion changes, so we
76+
// need to ask the service worker to update.
77+
console.log('New service worker available.');
78+
reg.update();
79+
waitForActivation(reg.installing);
80+
} else {
81+
// Existing service worker is still good.
82+
console.log('Loading app from service worker.');
83+
loadMainDartJs();
84+
}
85+
});
86+
87+
// If service worker doesn't succeed in a reasonable amount of time,
88+
// fallback to plaint <script> tag.
89+
setTimeout(() => {
90+
if (!scriptLoaded) {
91+
console.warn(
92+
'Failed to load app from service worker. Falling back to plain <script> tag.',
93+
);
94+
loadMainDartJs();
95+
}
96+
}, 4000);
97+
});
98+
} else {
99+
// Service workers not supported. Just drop the <script> tag.
100+
loadMainDartJs();
101+
}
102+
</script>
103+
</body>
104+
</html>

example/web/manifest.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "example",
3+
"short_name": "example",
4+
"start_url": ".",
5+
"display": "standalone",
6+
"background_color": "#0175C2",
7+
"theme_color": "#0175C2",
8+
"description": "A new Flutter project.",
9+
"orientation": "portrait-primary",
10+
"prefer_related_applications": false,
11+
"icons": [
12+
{
13+
"src": "icons/Icon-192.png",
14+
"sizes": "192x192",
15+
"type": "image/png"
16+
},
17+
{
18+
"src": "icons/Icon-512.png",
19+
"sizes": "512x512",
20+
"type": "image/png"
21+
},
22+
{
23+
"src": "icons/Icon-maskable-192.png",
24+
"sizes": "192x192",
25+
"type": "image/png",
26+
"purpose": "maskable"
27+
},
28+
{
29+
"src": "icons/Icon-maskable-512.png",
30+
"sizes": "512x512",
31+
"type": "image/png",
32+
"purpose": "maskable"
33+
}
34+
]
35+
}

0 commit comments

Comments
 (0)