基础组件库
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

64 lines
1.5 KiB

  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:zhiying_comm/zhiying_comm.dart';
  4. class MainPage extends StatefulWidget {
  5. MainPage({Key key}) : super(key: key);
  6. @override
  7. _MainPageState createState() => _MainPageState();
  8. }
  9. class _MainPageState extends State<MainPage> {
  10. WidgetType _type = WidgetType.skeleton;
  11. @override
  12. void initState() {
  13. _reload();
  14. super.initState();
  15. }
  16. void _reload() {
  17. setState(() {
  18. _type = WidgetType.skeleton;
  19. });
  20. Future.delayed(Duration(seconds: 3), () {
  21. setState(() {
  22. _type = WidgetType.normal;
  23. });
  24. });
  25. }
  26. List<Widget> _createContent() {
  27. List<Widget> list = List();
  28. list.add(SliverToBoxAdapter(
  29. child: RaisedButton(
  30. onPressed: _reload,
  31. child: Text('重置'),
  32. ),
  33. ));
  34. list.addAll(
  35. WidgetFactory.create('home_banner', type: _type, isSliver: true));
  36. list.addAll(
  37. WidgetFactory.create('home_goods', type: _type, isSliver: true));
  38. list.addAll(
  39. WidgetFactory.create('home_goods', type: _type, isSliver: true));
  40. list.addAll(
  41. WidgetFactory.create('home_goods', type: _type, isSliver: true));
  42. return list;
  43. }
  44. @override
  45. Widget build(BuildContext context) {
  46. print('build');
  47. return Scaffold(
  48. backgroundColor: Color(0xfff9f9f9),
  49. body: SafeArea(
  50. child: Container(
  51. child: CustomScrollView(
  52. slivers: _createContent(),
  53. ))),
  54. );
  55. }
  56. }