Flutter 如何将我的列表视图宽度设置为全屏宽度,以及如何使其自动滚动

Flutter 如何将我的列表视图宽度设置为全屏宽度,以及如何使其自动滚动,flutter,flutter-layout,Flutter,Flutter Layout,如何将我的列表视图宽度设置为全屏宽度,以及如何使其在几秒钟后自动滚动 void scrollAfter(ScrollController scrollController, {int seconds}) { Future.delayed(Duration(seconds: seconds), () { var offset = 550.0; var scrollDuration = Duration(seconds: 2); scrollContro

如何将我的列表视图宽度设置为全屏宽度,以及如何使其在几秒钟后自动滚动

 void scrollAfter(ScrollController scrollController, {int seconds}) {
    Future.delayed(Duration(seconds: seconds), () {
      var offset = 550.0;
      var scrollDuration = Duration(seconds: 2);
      scrollController.animateTo(offset,
          duration: scrollDuration, curve: Curves.ease);
    });
  }
  @override
  Widget build(BuildContext context) {
    var scrollController = ScrollController();
    scrollAfter(scrollController, seconds: 2);
    // TODO: implement build
    return Container(child:
    new StreamBuilder(
        stream: Firestore.instance.collection('Top List').snapshots(),
        builder: (BuildContext context,snapshot) {
          if (!snapshot.hasData) return new Text("no");
          var documentsLength = snapshot.data.documents.length;
          return ListView.builder(itemCount: documentsLength,
              scrollDirection: Axis.horizontal,
              controller: scrollController,
              shrinkWrap: true,
              itemBuilder: (context, index) {

                return buildlistItem((AllProduct.fromDocument(snapshot.data.documents[index])));

              });
下面是我想要滚动的buildlistItem类表单######################################################################################################################################################################################################################################################################

Widget buildlistItem(所有产品所有列表){
返回
新手势检测器(
子:容器(
孩子:新卡(
标高:2.0,
边距:所有常数边集(5.0),
子:新堆栈(
对齐:对齐.center,
儿童:[
新英雄(
标记:alllist.title,
child:newimage.network(alllist.backgroundImageUrl,fit:BoxFit.cover),
),
新对齐(
子容器:新容器(
填充:常数边集全部(6.0),
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
新专栏(
mainAxisSize:mainAxisSize.min,
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
新文本(alllist.title,
样式:新文本样式(颜色:Colors.white,fontFamily:“ChelaOne常规”),
],
),
图标按钮(按下时:(){
},
图标:新图标(图标。添加购物车,颜色:颜色。白色,),
)
],
),
颜色:颜色。黑色。不透明度(0.4),
),
对齐:对齐.bottomCenter,
),
],
),
),
),
onTap:(){},
);
}
}

您可以使用
ScrollController
实现自动滚动部分。请参考下面的例子

import 'dart:async';

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var scrollController = ScrollController();
    var listView = ListView.builder(
      itemBuilder: (context, index) => Text("$index"),
      controller: scrollController,
    );
    scrollAfter(scrollController, seconds: 2);
    return MaterialApp(
        title: 'Trial',
        home: Scaffold(
            appBar: AppBar(title: Text('List scroll')), body: listView));
  }

  void scrollAfter(ScrollController scrollController, {int seconds}) {
    Future.delayed(Duration(seconds: seconds), () {
      var offset = 550.0;
      var scrollDuration = Duration(seconds: 2);
      scrollController.animateTo(offset,
          duration: scrollDuration, curve: Curves.ease);
    });
  }
}

您可以使用列或行小部件垂直或水平对齐子项。重新分级将列表内容扩展到全宽,您可以使用扩展的小部件。 实现自动滚动非常简单。ListView小部件在其构造函数中接受controller:的参数

final ScrollController _scrollController = new ScrollController();
实现全宽度和自动滚动

new Column(
children: [
     new Expanded(
           new ListView.builder(builder:(BuildContext _context, int index){
               return //your list elements here.
             },
          controller: _scrollController,
          itemCount: count //total count of elements on list
         ),
       ),
      // your other widgets here.
   ]
)
用于自动滚动

//your logic here
_scrollController.animateTo(double position, Duration duration, Curves curve);//refer to documentation

感谢回复…我像这样编辑我的代码,但它不会滚动..我正在使用水平滚动抱歉,当我给卡片加宽时它会滚动..但它只在应用程序运行时第一次滚动..如果我手动滚动,然后它不会滚动,现在我有3个项目..我想反向滚动..实际上我想自动滚动它当用户在该页面上时,您想前后滚动吗?两者..当应用程序启动时,它第一次向前滚动,但如果列表结束,则再次向后滚动失败断言:第149行位置12:“_positions.isNotEmpty”:ScrollController未连接到任何滚动视图…显示错误
//your logic here
_scrollController.animateTo(double position, Duration duration, Curves curve);//refer to documentation