创建可以双向滚动的列表视图

时间:2019-07-03 14:54:03

标签: flutter

我正在尝试创建一个可以垂直和水平滚动的列表视图。我现在的问题是我可以使列表视图水平滚动但固定宽度。理想情况下,我希望宽度最小,而且我不会提前知道列表视图中元素的宽度,因此我希望它是动态的。现在,我的宽度设置为1000,这就是我要解决的问题。

SingleChildScrollView(
    scrollDirection: Axis.horizontal,
    child: SizedBox(
      width: 1000,
      child: ListView.builder(
        itemCount: count,
        itemBuilder: (BuildContext context, int index) {
          return Row(
            children: <Widget>[
              Text("Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,"),
            ],
          );
        },
      ),
    ),
  ),

1 个答案:

答案 0 :(得分:0)

如果在两个方向上都使用SingleChildScrollView,而在垂直方向上都使用列而不是ListView,则更好。


class MyHomePage extends StatelessWidget {
  MyHomePage({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: ListView.builder(
          itemExtent: 100,
          itemBuilder: (context, index) => SingleChildScrollView(
                scrollDirection: Axis.horizontal,
                child: Row(mainAxisSize: MainAxisSize.min, children: <Widget>[
                  Text(
                      "Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,Hello,"),
                ]),
              )),
    );
  }
}