CarouselSlider起点抖动

seu*_*240 4 flutter carousel-slider

这是我的代码。

\n
@override\n  Widget build(BuildContext context) {\n    return Container(\n      color: Colors.red,\n      padding: EdgeInsets.all(7),\n      child: Column(\n        crossAxisAlignment: CrossAxisAlignment.start,\n        children: <Widget>[\n          Text(\'\xec\xa7\x80\xea\xb8\x88 \xeb\x9c\xa8\xeb\x8a\x94 \xec\xbd\x98\xec\x84\x9c\xed\x8a\xb8\'),\n          Material(\n            color: Colors.lightGreen,\n            child: CarouselSlider(\n              items: makeBoxImages(context, concerts),\n              options: CarouselOptions(\n                viewportFraction: 0.3,\n                enableInfiniteScroll: false,\n                initialPage: 1,\n              ),\n            ),\n          ),\n        ],\n      ),\n    );\n  }\n
Run Code Online (Sandbox Code Playgroud)\n
List<Widget> makeBoxImages(BuildContext context, List<Concert> concerts) {\n  List<Widget> results = [];\n  for (var i = 0; i < concerts.length; i++) {\n    results.add(\n      Material(\n        color: Colors.yellow,\n        child: Column(\n          children: [\n            Container(\n              color: Colors.blue,\n              child: Column(\n                crossAxisAlignment: CrossAxisAlignment.center,\n                children: [\n                  Image.asset(\n                    \'assets/images/\' + concerts[i].poster,\n                    width: MediaQuery.of(context).size.width * 0.25,\n                  ),\n                  Row(\n                    mainAxisAlignment: MainAxisAlignment.center,\n                    children: <Widget>[\n                      Icon(\n                        kIconMap[concerts[i].kinds],\n                        size: 15,\n                      ),\n                      Text(concerts[i].kinds),\n                    ],\n                  ),\n                ],\n              ),\n            ),\n          ],\n        ),\n      ),\n    );\n  }\n  return results;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

然后,屏幕显示如下。

\n

在此输入图像描述

\n

当我从左向右滚动时,屏幕显示如下。

\n

在此输入图像描述

\n

之后屏幕就固定了。

\n
\n

此时,我有两个问题。

\n
    \n
  1. 我想让第一个屏幕像这样。这可能吗?\n在此输入图像描述

    \n
  2. \n
  3. 当滑块在屏幕中的第一个元素位于最左边时,我想修复它(当用户从​​左向右滚动时)

    \n
  4. \n
\n

就像第一张图片而不是第二张图片。

\n

感谢您阅读我的问题。

\n

小智 6

如果我清楚地了解您的问题,那么解决方案是将 padEnds 切换为 false

 options: CarouselOptions(
 padEnds : false)
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助。