Класс виджета Marquee
Я хочу создать текстовое поле, в которое вы можете ввести абзац. Вот почему этот класс был тем, что доступно. Пожалуйста, проверьте ошибку.
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 После этого я запускаю приложение. Он ничего не отображает. Итак, что теперь делать.
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),
),
),
),
),