flutter 没有刷新指示器与CarouselSlider

h22fl7wq  于 2023-11-21  发布在  Flutter
关注(0)|答案(1)|浏览(163)

我有下面的代码,我想添加拉刷新功能,它的作品时,我从顶部拖动,但不会工作,当我试图从中心拖动,这是因为我使用CarouselSlider它的作品时,我删除它,但我想使用它沿着与刷新指示器上拉从屏幕上的任何地方。

RefreshIndicator(
      onRefresh: refreshScreen,
      child: SingleChildScrollView(
        physics: const AlwaysScrollableScrollPhysics(),
        child: Container(
          color: kBackgroundColor,
          child: Stack(
            children: <Widget>[
              CarouselSlider(
                carouselController: tabCarouselController,
                options:

字符串
我尝试了许多其他的解决方案,比如将它 Package 在列表或SingleChildScrollView中,但都不起作用。

1szpjjfi

1szpjjfi1#

将所有页面主体小部件 Package 在一个列表视图中,如下例所示

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Carousel Slider with RefreshIndicator'),
      ),
      body: RefreshIndicator(
        onRefresh: () async {},
        child: ListView(
          children: [
            CarouselSlider(
              options: CarouselOptions(
                height: 200.0,
                enlargeCenterPage: true,
                autoPlay: true,
                aspectRatio: 16 / 9,
                autoPlayCurve: Curves.fastOutSlowIn,
                enableInfiniteScroll: true,
                autoPlayAnimationDuration: const Duration(milliseconds: 800),
                viewportFraction: 0.8,
              ),
              items: [
                Container(
                  color: Colors.green,
                  child: const Center(
                    child: Text('Slide 1'),
                  ),
                ),
                Container(
                  color: Colors.blue,
                  child: const Center(
                    child: Text('Slide 2'),
                  ),
                ),
                Container(
                  color: Colors.red,
                  child: const Center(
                    child: Text('Slide 3'),
                  ),
                ),
              ],
            ),
            // Other widgets can go here
          ],
        ),
      ),
    );
  }
}

字符串
在这个例子中,CarouselSlider被放置在ListView中,RefreshIndicator Package 了整个ListView。这应该允许你同时拥有carousel滑块和拉取刷新功能,你可以从屏幕上的任何地方拉取。

相关问题