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