刷新指示器颤动

问题描述 投票:0回答:2

RefreshIndicator仅适用于可滚动或与ListView相关的小部件吗?我希望将它与脚手架内的容器一起使用,并使用手势识别器,从而在拉下它时刷新。

我尝试在包含容器的代码中使用 RefreshIndicator,但它不起作用。

flutter dart async-await pull-to-refresh
2个回答
1
投票

在两者之间添加 SingleChildScrollView 对我来说效果很好。

class MyWidget extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return RefreshIndicator(
          onRefresh: () {},
          child: SingleChildScrollView(
            physics: AlwaysScrollableScrollPhysics(),
            child: Container(
              child: Center(
                child: Text('Hello World'),
              ),
              height: MediaQuery.of(context).size.height,
            ),
          ),
        );
      }

}

0
投票

我创建了一个多功能的 SmartRefreshIndicator 小部件,可以与

一起使用

可滚动和不可滚动的子部件。

它非常适合在各种 UI 元素中集成下拉刷新功能,例如 ListViewColumn 或任何需要刷新功能的小部件。

class SmartRefreshIndicator extends StatelessWidget {
  final Future<void> Function() onRefresh;
  final Widget child;

  const SmartRefreshIndicator({
    super.key,
    required this.onRefresh,
    required this.child,
  });

  @override
  Widget build(context) {
    return LayoutBuilder(
      builder: (context, constraints) => RefreshIndicator(
        onRefresh: onRefresh,
        child: SingleChildScrollView(
          physics: const AlwaysScrollableScrollPhysics(),
          child: ConstrainedBox(
            constraints: BoxConstraints(minHeight: constraints.maxHeight),
            child: child,
          ),
        ),
      ),
    );
  }
}

您可以随意扩展和自定义它以满足您的特定需求!

© www.soinside.com 2019 - 2024. All rights reserved.