fix(home): 修复分类分页控制器初始化
This commit is contained in:
1 parent
6c1f3b9eae
commit
d6f1cf2a2c
2 files changed
+10
-6
No files matched your search
@@ -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 衔接网格。
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user