fix: 首页tabbar排序无效
This commit is contained in:
@ -63,13 +63,16 @@ class HomeController extends GetxController with GetTickerProviderStateMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setTabConfig() async {
|
void setTabConfig() async {
|
||||||
defaultTabs = tabsConfig;
|
defaultTabs = [...tabsConfig];
|
||||||
tabbarSort = settingStorage.get(SettingBoxKey.tabbarSort,
|
tabbarSort = settingStorage.get(SettingBoxKey.tabbarSort,
|
||||||
defaultValue: ['live', 'rcmd', 'hot', 'bangumi']);
|
defaultValue: ['live', 'rcmd', 'hot', 'bangumi']);
|
||||||
|
defaultTabs.retainWhere(
|
||||||
|
(item) => tabbarSort.contains((item['type'] as TabType).id));
|
||||||
|
defaultTabs.sort((a, b) => tabbarSort
|
||||||
|
.indexOf((a['type'] as TabType).id)
|
||||||
|
.compareTo(tabbarSort.indexOf((b['type'] as TabType).id)));
|
||||||
|
|
||||||
tabs.value = defaultTabs
|
tabs.value = defaultTabs;
|
||||||
.where((i) => tabbarSort.contains((i['type'] as TabType).id))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (tabbarSort.contains(TabType.rcmd.id)) {
|
if (tabbarSort.contains(TabType.rcmd.id)) {
|
||||||
initialIndex.value = tabbarSort.indexOf(TabType.rcmd.id);
|
initialIndex.value = tabbarSort.indexOf(TabType.rcmd.id);
|
||||||
|
|||||||
@ -22,6 +22,17 @@ class _TabbarSetPageState extends State<TabbarSetPage> {
|
|||||||
defaultTabs = tabsConfig;
|
defaultTabs = tabsConfig;
|
||||||
tabbarSort = settingStorage.get(SettingBoxKey.tabbarSort,
|
tabbarSort = settingStorage.get(SettingBoxKey.tabbarSort,
|
||||||
defaultValue: ['live', 'rcmd', 'hot', 'bangumi']);
|
defaultValue: ['live', 'rcmd', 'hot', 'bangumi']);
|
||||||
|
// 对 tabData 进行排序
|
||||||
|
defaultTabs.sort((a, b) {
|
||||||
|
int indexA = tabbarSort.indexOf((a['type'] as TabType).id);
|
||||||
|
int indexB = tabbarSort.indexOf((b['type'] as TabType).id);
|
||||||
|
|
||||||
|
// 如果类型在 sortOrder 中不存在,则放在末尾
|
||||||
|
if (indexA == -1) indexA = tabbarSort.length;
|
||||||
|
if (indexB == -1) indexB = tabbarSort.length;
|
||||||
|
|
||||||
|
return indexA.compareTo(indexB);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveEdit() {
|
void saveEdit() {
|
||||||
|
|||||||
Reference in New Issue
Block a user