view.dart 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import 'package:electronic_assistant/base/base_page.dart';
  2. import 'package:electronic_assistant/module/files/controller.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter_screenutil/flutter_screenutil.dart';
  5. import '../../resource/assets.gen.dart';
  6. class FilesPage extends BasePage<FilesController> {
  7. const FilesPage({super.key});
  8. @override
  9. Widget? buildBody(BuildContext context) {
  10. return Scaffold(
  11. body: Flex(
  12. direction: Axis.vertical,
  13. children: [
  14. Column(
  15. children: [
  16. AppBar(
  17. title: const Text('文件夹'),
  18. actions: [
  19. IconButton(
  20. onPressed: () {},
  21. icon: ImageIcon(Assets.images.iconFilesNewDir.provider()),
  22. ),
  23. IconButton(
  24. onPressed: () {},
  25. icon: ImageIcon(Assets.images.iconMore.provider()),
  26. ),
  27. ],
  28. ),
  29. Container(
  30. margin: EdgeInsets.symmetric(horizontal: 12.w),
  31. padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 8.w),
  32. height: 36.w,
  33. decoration: BoxDecoration(
  34. color: Colors.white,
  35. borderRadius: BorderRadius.circular(8.w),
  36. ),
  37. child: TextField(
  38. maxLines: 1,
  39. textAlignVertical: TextAlignVertical.center,
  40. decoration: InputDecoration(
  41. hintText: '搜索所有文件标题 / 内容',
  42. border: InputBorder.none,
  43. icon: ImageIcon(Assets.images.iconSearch.provider()),
  44. iconColor: const Color.fromRGBO(95, 95, 97, 1),
  45. ),
  46. style: TextStyle(fontSize: 14.sp),
  47. ),
  48. ),
  49. ],
  50. ),
  51. Expanded(
  52. child: NestedScrollView(
  53. headerSliverBuilder:
  54. (BuildContext context, bool innerBoxIsScrolled) {
  55. return <Widget>[
  56. GridView.builder(
  57. gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
  58. crossAxisCount: 2,
  59. ),
  60. itemBuilder: (BuildContext context, int index) {
  61. return const SizedBox();
  62. },
  63. ),
  64. const Text('全部谈话'),
  65. ];
  66. },
  67. body: AnimatedList(
  68. initialItemCount: 10,
  69. itemBuilder: (BuildContext context, int index,
  70. Animation<double> animation) {
  71. return const SizedBox();
  72. },
  73. ),
  74. ))
  75. ],
  76. ),
  77. );
  78. }
  79. }