-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgoods_search_page.dart
executable file
·66 lines (57 loc) · 2.09 KB
/
goods_search_page.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:worldfunclub/other.dart';
import 'package:worldfunclub/providers.dart';
import 'package:worldfunclub/vm/goods_search_page_provider.dart';
import 'package:worldfunclub/widgets/good_item.dart';
class GoodsSearchPage extends ProviderWidget<GoodsSearchPageProvider> {
final GlobalKey<GoodsSearchPageContentState> opKey;
GoodsSearchPage(String query, GoodsType type, this.opKey)
: super(params: [query, type]);
@override
Widget buildContent(BuildContext context,mProvider) {
return _GoodsSearchPageContent(mProvider, key: opKey);
}
}
class _GoodsSearchPageContent extends StatefulWidget {
final GoodsSearchPageProvider provider;
_GoodsSearchPageContent(this.provider, {Key key});
@override
GoodsSearchPageContentState createState() => GoodsSearchPageContentState();
}
class GoodsSearchPageContentState extends State<_GoodsSearchPageContent> {
ScrollController _controller;
@override
void initState() {
super.initState();
widget.provider.queryGoods(clear: true);
_controller=ScrollController();
_controller.addListener(() {
if(_controller.position.maxScrollExtent== _controller.position.pixels){
if(widget.provider.canload){
widget.provider.queryGoods();
}
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xfff5f5f5),
body: Container(
padding: EdgeInsets.symmetric(horizontal: 10.5.w),
child: GridView.builder(controller: _controller,
itemCount: widget.provider.data.length,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2,childAspectRatio: 170/256),
itemBuilder: (c, i) => Container(
margin: EdgeInsets.symmetric(vertical: 4.w,horizontal: 3.5.w),
child: GoodsItemForSearch(widget.provider.data[i],widget.provider.type)),
),
),
);
}
void search(String query, GoodsType type) {
widget.provider.search(query, type);
}
}