Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 将textfield作为子项添加到MarqueeWidget会导致出现空白屏幕_Flutter - Fatal编程技术网

Flutter 将textfield作为子项添加到MarqueeWidget会导致出现空白屏幕

Flutter 将textfield作为子项添加到MarqueeWidget会导致出现空白屏幕,flutter,Flutter,选框小部件类 我想创建一个文本字段,您可以在其中输入关于段落的信息。 所以,这就是为什么这个类是可用的。 请检查错误 class MarqueeWidget extends StatefulWidget { final Widget child; final Axis direction; final Duration animationDuration, backDuration, pauseDuration; MarqueeWidget({ @required th

选框小部件类

我想创建一个文本字段,您可以在其中输入关于段落的信息。 所以,这就是为什么这个类是可用的。 请检查错误

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);
    }
  }
}
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),
                ),
              ),
            ),
          ),