merge: 修复分类分页控制器初始化

This commit is contained in:
Zhou Weidong committed 2026-10-22 19:07:41 +08:00
commit f69a27bb80
2 files changed
+10 -6

No files matched your search

+1
View File
@@ -1113,6 +1113,7 @@ $ flutter test
- 一级分类未选 18/w400、选中 20/w700;二级 chips 间距 10、左右 8、15/w600,并以稳定 AnimatedContainer 切换。
- 首页内容区改为横向 PageView:点击与滑动共用 PageController,各 tab 保留纵向滚动位置。
- PageController 与各 tab ScrollController 改为字段直接初始化,修复热重载后的 LateInitializationError。
- 四类卡片去底板/描边,封面统一 3:4、8 圆角、行距 10、封底标题间距 6;状态角标为右上角紧凑异形丝带。
- 标题下方恢复左对齐题材文字,使用 `|` 分隔、灰色小字,与封面状态角标保持独立。
- 首页搜索栏到一级、一级到二级、二级到网格间距为 8/8/10;非精选 tab 直接以 10 衔接网格。
+9 -6
View File
@@ -43,8 +43,10 @@ class HomeFeedGrid extends StatefulWidget {
class _HomeFeedGridState extends State<HomeFeedGrid> {
HomePrimaryTab _selectedPrimary = HomePrimaryTab.featured;
late final PageController _pageController;
late final Map<HomePrimaryTab, ScrollController> _scrollControllers;
final PageController _pageController = PageController();
final Map<HomePrimaryTab, ScrollController> _scrollControllers = {
for (final tab in HomePrimaryTab.values) tab: ScrollController(),
};
final Map<HomePrimaryTab, String?> _selectedTags = {
for (final tab in HomePrimaryTab.values) tab: null,
};
@@ -52,10 +54,11 @@ class _HomeFeedGridState extends State<HomeFeedGrid> {
@override
void initState() {
super.initState();
_pageController = PageController(initialPage: _selectedPrimary.index);
_scrollControllers = {
for (final tab in HomePrimaryTab.values) tab: ScrollController(),
};
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted && _pageController.hasClients) {
_pageController.jumpToPage(_selectedPrimary.index);
}
});
}
@override