Closed GHkmmm closed 2 months ago
header设置claming为true后,在页面下拉刷新,状态变更为成功后无法回弹页面,需要手动点击页面任意处才能关闭;
如果不设置claming,可以回弹页面但是下拉的幅度很大;
import 'package:easy_refresh/easy_refresh.dart'; import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart'; import 'package:flutter/material.dart'; class HomePage extends StatefulWidget { const HomePage({super.key}); @override State<HomePage> createState() => _HomePageState(); } class _HomePageState extends State<HomePage> with TickerProviderStateMixin { late TabController _tabController; final EasyRefreshController _easyRefreshController = EasyRefreshController( controlFinishRefresh: true, controlFinishLoad: true, ); @override void initState() { _tabController = TabController(length: 2, vsync: this); super.initState(); } @override Widget build(BuildContext context) { return EasyRefresh.builder( controller: _easyRefreshController, header: ClassicHeader( clamping: true, position: IndicatorPosition.locator, ), footer: ClassicFooter( position: IndicatorPosition.locator, ), onRefresh: () async { await Future.delayed(const Duration(seconds: 2)); _easyRefreshController.finishRefresh(); // _easyRefreshController.resetFooter(); }, onLoad: () async {}, childBuilder: (context, physics) => ScrollConfiguration( behavior: ERScrollBehavior(), child: ExtendedNestedScrollView( physics: physics, onlyOneScrollInBody: true, pinnedHeaderSliverHeightBuilder: () { return MediaQuery.of(context).padding.top + kToolbarHeight; }, headerSliverBuilder: (context, boxIsScrolled) => [ const HeaderLocator.sliver( clearExtent: false, ), SliverAppBar( pinned: true, expandedHeight: 120, flexibleSpace: FlexibleSpaceBar( title: Text( 'TabBarView', style: TextStyle( color: Theme.of(context).textTheme.titleLarge?.color), ), centerTitle: false, ), bottom: TabBar( controller: _tabController, tabs: <Widget>[ Tab( text: '推荐', ), Tab( text: '关注', ), ], ), ) ], body: SizedBox( height: 1000, child: TabBarView( controller: _tabController, children: [ Tab(text: '推荐'), Tab(text: '关注'), ].map((Tab tab) => Placeholder()).toList(), ), ), ), ), ); } }
Flutter 3.22.1 • channel stable • https://github.com/flutter/flutter.git Framework • revision a14f74ff3a (13 天前) • 2024-05-22 11:08:21 -0500 Engine • revision 55eae6864b Tools • Dart 3.4.1 • DevTools 2.34.3
TabBarView里面的listview传入physics就可以。
TabBarView的方案,请按照示例调整。这个方式很多问题可能得不到解决
问题描述
header设置claming为true后,在页面下拉刷新,状态变更为成功后无法回弹页面,需要手动点击页面任意处才能关闭;
如果不设置claming,可以回弹页面但是下拉的幅度很大;
复现代码:
复现版本: