zero_adaptive_link 0.1.0
zero_adaptive_link: ^0.1.0 copied to clipboard
Adaptive navigation for Flutter — one onTap, the right behavior everywhere: push a page on mobile, expand a sidebar pane on web and desktop. URL-addressable, deep-linkable, zero runtime dependencies.
Changelog #
0.1.0 #
Added / 新增 #
- Added the
ZeroLinkwidget: one declarative tap target whose behavior adapts to the window width — push a new page on compact / medium, expand or update the right sidebar pane on expanded, and focus an already visible pane instead of duplicating it.- 新增
ZeroLink组件:一套声明式点击目标,行为随窗口宽度自适应——compact / medium 推入新页面,expanded 展开或更新右侧侧栏 pane,目标 pane 已可见时聚焦而非重复展开。
- 新增
- Added
ZeroNav, the imperative entry point with the same verbs asNavigatorState(pushNamed,pushReplacementNamed,pushNamedAndRemoveUntil,popAndPushNamed,pop,maybePop,popFrom,maybePopFrom,popUntil,canPop), plusnamedLocationandrefreshhelpers.- 新增
ZeroNav命令式入口,导航动词与NavigatorState同名同签名(pushNamed、pushReplacementNamed、pushNamedAndRemoveUntil、popAndPushNamed、pop、maybePop、popFrom、maybePopFrom、popUntil、canPop),并提供namedLocation与refresh辅助方法。
- 新增
- Added the declarative route table:
ZeroRouter,ZeroShell,ZeroTabandZeroRoutewith nested routes,:paramsegments,name,title, route-level and router-levelredirect(with aredirectLimitof 5),onExit,fullscreen/fullscreenDialog,opaque,barrierColor,barrierDismissible,transitionsBuilderanderrorBuilder.- 新增声明式路由表:
ZeroRouter、ZeroShell、ZeroTab与ZeroRoute,支持嵌套路由、:param片段、name、title、路由级与路由表级redirect(redirectLimit默认 5)、onExit、fullscreen/fullscreenDialog、opaque、barrierColor、barrierDismissible、transitionsBuilder与errorBuilder。
- 新增声明式路由表:
- Added the master-detail pane semantics:
SlidingPanes(1/2 columns, slide-in detail with parallax master, draggable resize handle),SlidingPane,Breadcrumbs,BreakpointsandBreakpointClass— all usable without the router.- 新增 master-detail pane 语义:
SlidingPanes(单列 / 双列、detail 右滑入带 master 视差、可拖拽分割线)、SlidingPane、Breadcrumbs、Breakpoints与BreakpointClass——均可脱离路由单独使用。
- 新增 master-detail pane 语义:
- Added configurable pane expansion direction:
SlidingPanesSideplus theside/paneSide/paneSideListenableoptions, so the detail pane expands to the right (default, master on the left) or to the left (master on the right) — andpaneSideListenableflips it at runtime without rebuilding the router.- 新增可配置的展开方向:
SlidingPanesSide及side/paneSide/paneSideListenable选项,使 detail pane 可向右(默认,master 在左)或向左(master 在右)展开;paneSideListenable可在运行时切换而无需重建路由。
- 新增可配置的展开方向:
- Added configurable pane sizing:
leftPaneFractiononZeroRouter(the initial master pane fraction, previously fixed at0.4) andmaxLeftPaneWidthonZeroRouter/SlidingPanes— a pixel ceiling so the master pane still scales with the window but stops at a sane width on ultra-wide displays, with the detail pane absorbing the remainder. The ceiling applies to dragging too.- 新增可配置的 pane 尺寸:
ZeroRouter上的leftPaneFraction(master pane 初始占比,此前固定0.4)与ZeroRouter/SlidingPanes上的maxLeftPaneWidth——像素上限,使 master pane 仍随窗口缩放,但在超宽屏上停在合理宽度,剩余空间由 detail pane 吸收;拖拽同样受该上限约束。
- 新增可配置的 pane 尺寸:
- Added window-width breakpoints (
600/840) decoupled from the device type, so foldables, small desktop windows and browser zoom all classify correctly.- 新增基于窗口宽度的断点(
600/840),与设备类型解耦,折叠屏、桌面小窗与浏览器缩放都能正确归类。
- 新增基于窗口宽度的断点(
- Added URL addressability and deep links: every screen is in the route table, the web defaults to the hash strategy (
/#/products/42) so GitHub Pages needs no 404 fallback, and browser back, refresh and deep links share the same location pipeline as in-app navigation.- 新增 URL 可寻址与深链:每个页面都入表,Web 默认 hash 策略(
/#/products/42),GitHub Pages 无需 404 fallback;浏览器返回、刷新、深链与应用内导航走同一条 location 管道。
- 新增 URL 可寻址与深链:每个页面都入表,Web 默认 hash 策略(
- Added
ZeroShellChromefor the compact bottomNavigationBarrendered inside branch pages, so modal bottom sheets opened withuseRootNavigator: falsecan cover it; pushed pages hide it by default (hidesBottomBarWhenPushed).- 新增
ZeroShellChrome:compact 底部NavigationBar渲染进 branch 页面内部,useRootNavigator: false打开的 bottom sheet 可覆盖它;push 的页面默认隐藏底部栏(hidesBottomBarWhenPushed)。
- 新增
- Added
ZeroShellScope,ZeroShellState,ZeroPaneScope,ZeroRouteStateandZeroRouteStateScopefor reading shell state, pane titles, path / query parameters and arguments from anywhere in the tree.- 新增
ZeroShellScope、ZeroShellState、ZeroPaneScope、ZeroRouteState与ZeroRouteStateScope,可在树中任意位置读取 shell 状态、pane 标题、路径 / 查询参数与 arguments。
- 新增
- Added
ZeroNav.locationListenable, aValueListenable<String>for reactive UI viaValueListenableBuilder(zero runtime dependencies, no signals).- 新增
ZeroNav.locationListenable:ValueListenable<String>,可通过ValueListenableBuilder做响应式 UI(零运行时依赖,不用 signals)。
- 新增