Dart 对齐颤振的第一个小部件';s scrollview最初为centeric,但以下所有选定的小部件也位于中心

Dart 对齐颤振的第一个小部件';s scrollview最初为centeric,但以下所有选定的小部件也位于中心,dart,flutter,scrollview,Dart,Flutter,Scrollview,我想要实现的目标 我想让ScrollView的第一个小部件最初居中。但是如果scrollview被滚动,scrollview应该与父窗口具有相同的宽度,并且居中的小部件应该是选中的小部件 方法 我的第一个想法是使用initialScrollOffset属性。但这似乎没有任何效果 @override Widget build(BuildContext context) { return ListView( scrollDirection: Axis.horizontal,

我想要实现的目标

我想让ScrollView的第一个小部件最初居中。但是如果scrollview被滚动,scrollview应该与父窗口具有相同的宽度,并且居中的小部件应该是选中的小部件

方法

我的第一个想法是使用
initialScrollOffset
属性。但这似乎没有任何效果

@override
  Widget build(BuildContext context) {
    return ListView(
      scrollDirection: Axis.horizontal,
      children: _buildCarouselItems(),
      itemExtent: FrettirConstants.cardWidth,
      controller: new ScrollController(
          debugLabel: "Carousel",
          initialScrollOffset: -200,
        keepScrollOffset: true
      ),
    );
  }
草图


这听起来可能是一种不好的做法,但您可以在第一个位置添加一个具有其他旋转木马小部件3/4宽度的空容器

在我的伪代码中,每个旋转木马小部件的长度为160,空容器必须有其他小部件的3/4。这样,第一个旋转木马小部件完全可见,而第二个小部件具有3/4的可见性

Container(
  width: 160.0 * 3 / 4,
  color: Colors.transparent,
),
Container(
  margin: EdgeInsets.only(
    right: 10.0
  ),
  width: 160.0,
  color: Colors.red,
),
Container(
  margin: EdgeInsets.symmetric(
      horizontal: 10.0
  ),
  width: 160.0,
  color: Colors.blue,
),

谢谢您的快速帮助。我会把这个答案标记为有帮助,但不是在答案上。我希望会有一个更“合适”的方法来实现它。是的,这不是一个合适的答案或解决方案。我希望这不会成为你项目的障碍。不,当然不会。你帮助保持了“进步”。我可以稍后再讨论这个问题。谢谢你的帮助!