flutter - 在 Flutter 中使用 Marquee 包时出现错误
问题描述
目标
使其能够无错误地使用 Marquee()。
我做了什么
我安装了选框包。
写代码:
import 'package:marquee/marquee.dart';
// In Column()
Marquee(
text: "Exampleeeeeeeeeeeeeeeeeee",
pauseAfterRound:
const Duration(
seconds: 1),
style: const TextStyle(
fontSize: 20),
),
错误
我在调试控制台中没有看到任何错误,但我在 dart 文件中看到了彩色代码:
// errors_patch.dart
static _doThrowNew(int assertionStart, int assertionEnd, Object? message)
native "AssertionError_throwNew";
我试过的
我发现我可以通过使用 Expanded 来解决这个错误。所以我像这样用 Expanded 包围了 Marquee
Expanded(
child: Marquee(
text: "Exampleeeeeeeeeeeeeeeee",
pauseAfterRound:
const Duration(
seconds: 1),
style: const TextStyle(
fontSize: 20),
)),
但错误仍然发生。
════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderViewport#96fb3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
package:flutter/…/rendering/box.dart:1
Failed assertion: line 1999 pos 12: 'hasSize'
The relevant error-causing widget was
Marquee
lib\favorites.dart:167
════════════════════════════════════════════════════════════════════════════════
环境
$flutter 医生 -v 结果:
[√] Flutter (Channel beta, 2.6.0-5.2.pre, on Microsoft Windows [Version 10.0.22000.282], locale ja-JP)
• Flutter version 2.6.0-5.2.pre at D:\src\flutter_windows_2.5.0-stable\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 400608f101 (6 weeks ago), 2021-09-15 15:50:26 -0700
• Engine revision 1d521d89d8
• Dart version 2.15.0 (build 2.15.0-82.2.beta)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at D:\Android
• Platform android-30, build-tools 29.0.3
• Java binary at: D:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 4.2)
• Android Studio at D:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
[√] VS Code (version 1.61.2)
• VS Code at C:\Users\yukik\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.27.0
[√] Connected device (3 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)
• Chrome (web) • chrome • web-javascript • Google Chrome 95.0.4638.54
• Edge (web) • edge • web-javascript • Microsoft Edge 95.0.1020.40
• No issues found!
解决方案
将其添加到此层次结构中 Column Row Flexible Marquee 您正在尝试在没有有限高度的列小部件内使用扩展。所以它会抛出一个错误。
推荐阅读
- node.js - 定义后如何从另一个文件中获取变量
- c++ - 如果 iostream 对象不可复制,为什么下面的代码是合法的?
- python - 如何使用漂亮的汤来迭代并获取所有值来抓取网站?
- python - ModuleNotFoundError:没有名为“bcrypt”的模块
- ignite - 简单的 IAffinityFunction 实现导致崩溃
- database - Visual Basic:使用 Databindingsource 时如何按顺序显示下一个唯一 ID
- sql - HQL 与第二个表中的外键左连接
- c# - (如何)我可以使用 ASP.NET Core 进行自定义 TCP 数据包通信吗?
- c++ - decltype() 不适用于正在编译的类模板
- python - Google Colab Notebook 似乎没有使用 PYTHONPATH