使用AdaptiveScaffold与go_router实现列表-详情布局的问题求助
使用AdaptiveScaffold构建响应式布局的问题
我想基于AdaptiveScaffold实现一套响应式布局,要求宽屏和窄屏环境下都支持三种状态:
- 无导航状态(对应URI:
/) - 选中导航项状态(对应URI:
/nav1) - 选中列表项状态(对应URI:
/nav1/item2)
AdaptiveScaffold功能本身很出色,但相关文档不足,导致我在实现过程中遇到不少问题:
- 点击列表项会触发页面重建,首次点击时列表的滚动位置丢失
- 切换宽窄布局断点时,详情页要么在窄屏环境下不显示,要么在宽屏环境下直接替换掉列表
- 窄屏查看详情页时,返回列表的路由存在异常
以下是我当前的路由示例代码:
StatefulShellRoute.indexedStack( builder: (context, state, navigationShell) { final RouteExtras? extras = state.extra as RouteExtras?; final String? id = extras?.id; final String? subpage = extras?.subpage; return AppScaffold( navigationShell: navigationShell, subpage: subpage, id: id, ); }, branches: <StatefulShellBranch>[ StatefulShellBranch( initialLocation: '/', navigatorKey: _navigatorKey, routes: [ GoRoute( name: '/', path: '/', pageBuilder: (context, state) => const NoTransitionPage( child: DefaultScreen(), ), routes: [ GoRoute( name: "nav1", path: "nav1", pageBuilder: (context, state) => const NoTransitionPage( child: Nav1Screen(), ), routes: [ GoRoute( path: ":id", pageBuilder: (BuildContext context, GoRouterState state) { return NoTransitionPage( child: ItemDetails( name: state.pathParameters["id"], ), ); }, ), ], ), ], ), ...
目前我的AdaptiveScaffold主内容基本符合预期,但次要内容表现不稳定,切换布局断点时问题尤为严重,暂时无法提供有参考价值的AdaptiveScaffold示例代码。
内容的提问来源于stack exchange,提问作者Hans Kokx
相关产品推荐
相关产品推荐

