From db8d3bab5187f8a3d605a79f6e6f4dd64f9cdd24 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Wed, 27 Nov 2024 13:41:11 +0800 Subject: [PATCH] opt: store search index Signed-off-by: bggRGjQaUbCoE --- lib/pages/search/controller.dart | 12 +++++++++--- lib/pages/search_result/view.dart | 23 ++++++++++++++--------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/lib/pages/search/controller.dart b/lib/pages/search/controller.dart index feff050f..9396f1ba 100644 --- a/lib/pages/search/controller.dart +++ b/lib/pages/search/controller.dart @@ -19,6 +19,8 @@ class SSearchController extends GetxController { Rx loadingState = LoadingState.loading().obs; + int initIndex = 0; + @override void onInit() { super.onInit(); @@ -74,9 +76,13 @@ class SSearchController extends GetxController { GStorage.historyWord.put('cacheList', historyList); searchFocusNode.unfocus(); - await Get.toNamed('/searchResult', parameters: { - 'keyword': controller.text, - }); + await Get.toNamed( + '/searchResult', + parameters: { + 'keyword': controller.text, + }, + arguments: initIndex, + ); searchFocusNode.requestFocus(); } diff --git a/lib/pages/search_result/view.dart b/lib/pages/search_result/view.dart index 606ba231..3918e800 100644 --- a/lib/pages/search_result/view.dart +++ b/lib/pages/search_result/view.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/pages/search/controller.dart'; import 'package:PiliPalaX/utils/extension.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; @@ -28,12 +29,16 @@ class _SearchResultPageState extends State _tabController = TabController( vsync: this, + initialIndex: Get.arguments, length: SearchType.values.length, - ); + )..addListener(() { + Get.find().initIndex = _tabController.index; + }); } @override void dispose() { + _tabController.removeListener(() {}); _tabController.dispose(); super.dispose(); } @@ -114,15 +119,15 @@ class _SearchResultPageState extends State Expanded( child: TabBarView( controller: _tabController, - children: [ - for (var i in SearchType.values) ...{ - SearchPanel( - keyword: _searchResultController.keyword, - searchType: i, - tag: _tag, + children: SearchType.values + .map( + (item) => SearchPanel( + keyword: _searchResultController.keyword, + searchType: item, + tag: _tag, + ), ) - } - ], + .toList(), ), ), ],