Flutter:CarouselSlider/ExpandablePageView 可滚动项目宽度大于手机屏幕宽度?

Flutter: CarouselSlider/ExpandablePageView scrollable items with width larger than then phone screen width?

提问人:GianlucaA 提问时间:6/13/2023 更新时间:6/14/2023 访问量:228

问:

我想使用像轮播滑块或可扩展页面视图(或任何 PageView 构建器工作实现)这样的小部件,其项目/页面的宽度大于屏幕宽度。我希望能够自由地左右滚动,并且只有在到达项目/页面的末尾时才切换页面(左/右,所以上一页/下一页)。此外,我希望它们也是可垂直滚动的。

问题似乎不在于垂直滚动,而在于水平滚动,因为我尝试过,每当我创建一个宽度>于屏幕尺寸的项目时,所有其他页面都会消失,我只能在该页面内滚动。

Flutter Scroll 可扩展 轮播滑块

评论

0赞 Ahmad F 6/13/2023
你能发布问题的最小代码吗?
0赞 GianlucaA 6/13/2023
是的,请参阅我的代码示例答案
0赞 Ahmad F 6/13/2023
您应该将代码片段添加为问题的一部分,而不是答案。顺便说一句,我不是反对者:)

答:

0赞 Rahul Kushwaha 6/13/2023 #1

此代码可能有助于解决这些问题。

 SingleChildScrollView(
  scrollDirection: Axis.vertical,
  child: Column(
    children: [
      SizedBox(
        height: 300,
        child:  CarouselSlider.builder(
          scrollDirection: Axis.vertical,
          itemCount: 6,
          itemBuilder: (context, index, realIndex) {
            return SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              child: Container(
                color:
                index % 2 == 0 ? Colors.red : Colors.blue,
                width: MediaQuery.of(context).size.width + 400,
                child: Text(
                  index.toString(),
                ),
              ),
            );
          },
          options: CarouselOptions(viewportFraction: 1.0),
        ),
      )
     
      ...
      AnotherWidget(),    
    ],
    
  ),
)

评论

0赞 GianlucaA 6/14/2023
1:轮播滑块没有 scrollDirection 修饰符 2:通过删除它,我得到“不正确地使用 ParentData Widget”
0赞 Rahul Kushwaha 6/14/2023
@GianlucaA我已经更新了我的代码,请检查一下。