flutter - 在 MarqueeWidget 中将文本字段添加为子项会导致空白屏幕
问题描述
选框小部件类
我想创建一个文本字段,您可以在其中输入关于段落的内容。所以,这就是为什么这个类是可用的。请检查错误。
class MarqueeWidget extends StatefulWidget {
final Widget child;
final Axis direction;
final Duration animationDuration, backDuration, pauseDuration;
MarqueeWidget({
@required this.child,
this.direction: Axis.horizontal,
this.animationDuration: const Duration(milliseconds: 3000),
this.backDuration: const Duration(milliseconds: 800),
this.pauseDuration: const Duration(milliseconds: 800),
});
@override
_MarqueeWidgetState createState() => _MarqueeWidgetState();
}
class _MarqueeWidgetState extends State<MarqueeWidget> {
ScrollController scrollController;
@override
void initState() {
scrollController = ScrollController(initialScrollOffset: 50.0);
WidgetsBinding.instance.addPostFrameCallback(scroll);
super.initState();
}
@override
void dispose() {
scrollController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: widget.child,
scrollDirection: widget.direction,
controller: scrollController,
);
}
void scroll(_) async {
while (scrollController.hasClients) {
await Future.delayed(widget.pauseDuration);
if (scrollController.hasClients)
await scrollController.animateTo(
scrollController.position.maxScrollExtent,
duration: widget.animationDuration,
curve: Curves.ease);
await Future.delayed(widget.pauseDuration);
if (scrollController.hasClients)
await scrollController.animateTo(0.0,
duration: widget.backDuration, curve: Curves.easeOut);
}
}
}
我想创建一个文本字段,您可以在其中输入关于段落的内容。所以,这就是为什么这个类是可用的。请检查错误。Marquee Widget 的使用之后,我运行该应用程序。它什么也不显示。那么,现在该怎么办。
Padding(
padding: const EdgeInsets.all(8.0),
child: Expanded(
child: MarqueeWidget(
direction: Axis.horizontal,
child: TextField(
keyboardType: TextInputType.multiline,
maxLines: null,
onChanged: (value) {
about = value;
},
decoration: InputDecoration(
hintText: widget.currentUser.about,
),
style: TextStyle(color: Colors.black),
),
),
),
),
解决方案
推荐阅读
- python - 如何在两个数据框中使用不同的主键和外键列名在 pandas 中进行 vlookup?
- java - 了解和探索 JAAS-GSSAPI-JNDI 如何在后台协同工作
- cassandra - Axon:使用 Cassandra 作为事件存储
- c++ - 如何使用本机寡妇 api 移动 Gtk::Window?
- ruby-on-rails - Rails - 将现有曲目添加到现有播放列表 - 更新
- sql-server - 从 SSRS 中的 datetimeoffset 字段显示缩写的时区名称
- javascript - 有没有办法使用 JavaScript 更改/添加到 HTML 中的多个 ID/类?
- python-3.x - 使用 seaborn 时,色调不会根据给定的列着色
- python - 顺序问题:循环遍历我的 pandas DataFrame 是我唯一的解决方案吗?
- javascript - Angular:让用户用表单创建对象