mod: 搜索页面完善

This commit is contained in:
guozhigq
2023-06-22 12:12:59 +08:00
parent 6c531ce5d3
commit bd6ff61c5f
6 changed files with 82 additions and 29 deletions

View File

@ -1,5 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:pilipala/common/widgets/http_error.dart';
import 'controller.dart';
@ -10,11 +11,27 @@ class SearchPage extends StatefulWidget {
@override
State<SearchPage> createState() => _SearchPageState();
static final RouteObserver<PageRoute> routeObserver =
RouteObserver<PageRoute>();
}
class _SearchPageState extends State<SearchPage> {
class _SearchPageState extends State<SearchPage> with RouteAware {
final SearchController _searchController = Get.put(SearchController());
@override
// 返回当前页面时
void didPopNext() async {
_searchController.searchFocusNode.requestFocus();
super.didPopNext();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
SearchPage.routeObserver
.subscribe(this, ModalRoute.of(context) as PageRoute);
}
@override
Widget build(BuildContext context) {
return Scaffold(
@ -148,8 +165,12 @@ class _SearchPageState extends State<SearchPage> {
return HotKeyword(
width: width,
hotSearchList: _searchController.hotSearchList,
onClick: (keyword) =>
_searchController.onClickKeyword(keyword),
onClick: (keyword) async {
_searchController.searchFocusNode.unfocus();
await Future.delayed(
const Duration(milliseconds: 150));
_searchController.onClickKeyword(keyword);
},
);
} else {
return HttpError(