You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:17:20